}).then((pkg) => { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromDir'}, (tmpDir) => { const target = path.join(tmpDir, 'package.tgz') return pack.packDirectory(pkg, arg, target).then(() => { return upload(arg, pkg, false, target) }) }) }).then(() => {
}).then((pkg) => { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromDir'}, (tmpDir) => { const target = path.join(tmpDir, 'package.tgz') return pack.packDirectory(pkg, arg, target, null, true) .tap((c) => { contents = c }) .then((c) => !npm.config.get('json') && pack.logContents(c)) .then(() => upload(arg, pkg, false, target)) }) }).then(() => {
function packDirectory (mani, dir, target) { deprCheck(mani) return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'packing'}, (tmp) => { const tmpTarget = path.join(tmp, path.basename(target)) return tarPack(tmpTarget, dir, mani).then(() => { return move(tmpTarget, target, {Promise: BB, fs}) }).then(() => target) }) }
}).then((pkg) => { return cacache.tmp.withTmp(npm.tmp, { tmpPrefix: 'pacote-packing' }, (tmp) => { const tmpTar = path.join(tmp, 'package.tgz') return packDirectory(manifest, dir, tmpTar).then(() => { return pipe(fs.createReadStream(tmpTar), stream) }) }) }).catch((err) => stream.emit('error', err))
function publishFromPackage (arg) { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromPackage'}, (tmp) => { const extracted = path.join(tmp, 'package') const target = path.join(tmp, 'package.json') const opts = pacoteOpts() return pacote.tarball.toFile(arg, target, opts) .then(() => pacote.extract(arg, extracted, opts)) .then(() => readJson(path.join(extracted, 'package.json'))) .tap((pkg) => upload(arg, pkg, false, target)) }) }
function withTmp (opts, cb) { if (opts.cache) { // cacache has a special facility for working in a tmp dir return cacache.tmp.withTmp(opts.cache, {tmpPrefix: 'git-clone'}, cb) } else { const tmpDir = path.join(osenv.tmpdir(), 'pacote-git-tmp') const tmpName = uniqueFilename(tmpDir, 'git-clone') const tmp = mkdirp(tmpName).then(() => tmpName).disposer(rimraf) return BB.using(tmp, cb) } }
}).then((pkg) => { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'packing'}, (tmp) => { const tmpTarget = path.join(tmp, path.basename(target)) const tarOpt = { file: tmpTarget, cwd: dir, prefix: 'package/', portable: true, gzip: true } return packlist({ path: dir }) .then((files) => tar.create(tarOpt, files)) .then(() => move(tmpTarget, target, {Promise: BB, fs})) .then(() => lifecycle(pkg, 'postpack', dir)) .then(() => target) }) })
function publishFromPackage (arg) { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromPackage'}, (tmp) => { const extracted = path.join(tmp, 'package') const target = path.join(tmp, 'package.json') return cache.add(arg).then((info) => { const opts = pacoteOpts({integrity: info.integrity}) return BB.all([ pipe( cacache.get.stream.byDigest(opts.cache, info.integrity), writeStreamAtomic(target) ).then(() => target), pacote.extract(arg, extracted, opts).then(() => { return readJson(path.join(extracted, 'package.json')) }) ]).spread((target, pkg) => { return upload(arg, pkg, false, target) }) }) }) }