|
@@ -0,0 +1,72 @@
|
|
|
+#!/usr/bin/env node
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+const path = require('path')
|
|
|
+const AWS = require('aws-sdk')
|
|
|
+const packlist = require('npm-packlist')
|
|
|
+const tar = require('tar')
|
|
|
+const pacote = require('pacote')
|
|
|
+const tempy = require('tempy')
|
|
|
+
|
|
|
+async function loadRemoteDist (packageName, version) {
|
|
|
+ const tarball = pacote.tarball.stream(`${packageName}@${version}`)
|
|
|
+ .pipe(tar.Parse())
|
|
|
+ tarball.on('entry', (readEntry) => {
|
|
|
+ })
|
|
|
+ await finished(tarball)
|
|
|
+}
|
|
|
+
|
|
|
+async function main (packageName, version) {
|
|
|
+ if (!packageName) {
|
|
|
+ console.error('usage: upload-to-cdn <packagename> [version]')
|
|
|
+ console.error('Must provide a package name')
|
|
|
+ process.exit(1)
|
|
|
+ }
|
|
|
+
|
|
|
+ const remote = !!version
|
|
|
+ if (!remote) {
|
|
|
+ version = require(`../packages/${packageName}/package.json`).version
|
|
|
+ }
|
|
|
+
|
|
|
+ const packagePath = remote
|
|
|
+ ? `${packageName}@${version}`
|
|
|
+ : path.join(__dirname, '..', 'packages', packageName)
|
|
|
+ const temporaryPath = tempy.directory()
|
|
|
+
|
|
|
+ const proc = spawn('npm', ['pack', packagePath], {
|
|
|
+ cwd: temporaryPath,
|
|
|
+ stdio: 'inherit'
|
|
|
+ })
|
|
|
+
|
|
|
+ const code = await once(proc, 'exit')
|
|
|
+ if (code !== 0) {
|
|
|
+ console.error('packing failed')
|
|
|
+ process.exit(1)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+main(...process.argv.slice(2)).catch((err) => {
|
|
|
+ console.error(err.stack)
|
|
|
+ process.exit(1)
|
|
|
+})
|