const configPath = path.join(this.base, '.platform', data); const createOpts = {gzip: true, cwd: configPath, sync: true}; const archive = tar.create(createOpts, fs.readdirSync(configPath));
if (isTar) { tar .x({ file: absolutePath, strip: 1, C: downloadDir }) .then(() => resolve(fileInfo)); } else {
const setupLocalChrome = () => { return new Promise((resolve, reject) => { fs.createReadStream(config.localChromePath) .on('error', (err) => reject(err)) .pipe(tar.x({ C: config.setupChromePath, })) .on('error', (err) => reject(err)) .on('end', () => resolve()); }); }
function onEnd() { if(++endCount === 2) { pack.end(); } }
//打包下载功能 router.get('/',function(req,res){ res.append('Content-Disposition', 'attachment; filename="uploads.tar"'); //res.append('Content-Type', 'application/x-gzip'); //var dir = 'C:/Users/Administrator/Desktop/shop'; var dir = req.app.locals.__dirname + '/uploads'; fstream.Reader({path: dir, type: 'Directory'}) .pipe(tar.Pack()) //.pipe(zlib.Gzip()) .pipe(res); });
function extractTarball (cb) { // Unpack to disk so case-insensitive filesystems are consistent tar.extract({ file: basepath + '/npm-test-files-1.2.5.tgz', cwd: targetpath, sync: true }) cb() }
async function download(url, directory) { return pipeline( got.stream(url), tar.extract({ cwd: directory }) ); }
const createTarball = () => { const configPath = fs.existsSync(path.resolve('.fly', '.fly.yml')) ? '.fly/.fly.yml' : '.fly.yml'; const entries = [ configPath, ...glob.sync('.fly/*/**.{js,json}', { cwd: process.cwd() }), ...yaml .safeLoad(fs.readFileSync(path.join(process.cwd(), '.fly.yml'))) .files.reduce( (files, file) => files.push(...glob.sync(file)) && files, [] ), ].filter(file => fs.existsSync(path.resolve(process.cwd(), file))); return tar.create( { portable: true, follow: true, file: '.fly/bundle.tar' }, entries ); }
req.on('response', function (res) { if (res.statusCode !== 200) { badDownload = true cb(new Error(res.statusCode + ' response downloading ' + release.tarballUrl)) return } // content checksum getContentSha(res, function (_, checksum) { var filename = path.basename(release.tarballUrl).trim() contentShasums[filename] = checksum log.verbose('content checksum', filename, checksum) }) // start unzipping and untaring res.pipe(tar.extract({ strip: 1, cwd: devDir, filter: isValid }).on('close', afterTarball).on('error', cb)) })
function extractFile(isZip, src, dest, cb) { console.log('Extracting %s to %s', src, dest); if (isZip) { extractZip(src, {dir: dest}, cb); } else { tar.extract({ file: src, cwd: dest }, null, cb); } }
const setupS3Chrome = () => { return new Promise((resolve, reject) => { const params = { Bucket: config.remoteChromeS3Bucket, Key: config.remoteChromeS3Key, }; s3.getObject(params) .createReadStream() .on('error', (err) => reject(err)) .pipe(tar.x({ C: config.setupChromePath, })) .on('error', (err) => reject(err)) .on('end', () => resolve()); }); }
t.test('setup', t => { mkdirp.sync(resolve(pkg, 'package')) const pj = resolve(pkg, 'package', 'package.json') writeFileSync(pj, JSON.stringify({ name: 'foo', version: '1.2.3' })) chmodSync(pj, 0o640) tar.c({ sync: true, file: resolve(pkg, 'foo.tgz'), gzip: true, cwd: pkg }, ['package']) writeFileSync(resolve(pkg, 'package.json'), JSON.stringify({ name: 'root', version: '1.2.3', dependencies: { foo: 'file:foo.tgz' } })) t.end() })
const inp = fs.createReadStream(context.unpack); const gzip = zlib.createGunzip(); const out = tar.extract({ cwd: extractPath, strip: 1
const archiveResult = await tar.c({ gzip: true, file: tmpFile.name,
const unpackTgz = (packageTgz, unpackTarget) => { const extractOpts = { type: 'Directory', path: unpackTarget, strip: 1 } return new Promise((resolve, reject) => { fs.createReadStream(packageTgz) .on('error', function(err) { reject('Unable to open tarball ' + packageTgz + ': ' + err) }) .pipe(zlib.createUnzip()) .on('error', function(err) { reject('Error during unzip for ' + packageTgz + ': ' + err) }) .pipe(tar.Extract(extractOpts)) .on('error', function(err) { reject('Error during untar for ' + packageTgz + ': ' + err) }) .on('end', function(result) { resolve(result) }) }) }