summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeau Gunderson <beau@beaugunderson.com>2014-12-18 12:29:32 -0800
committerBeau Gunderson <beau@beaugunderson.com>2014-12-18 12:32:13 -0800
commit2de4bf8d3e19e14c874d6ce0ba2e24c6c5810dc8 (patch)
treeaac240963e760c9a9069c7c31020c247fd8f1c41
parentb52a1c61e67acecda7e4e1e435a48df7759c412b (diff)
downloadasync-2de4bf8d3e19e14c874d6ce0ba2e24c6c5810dc8.tar.gz
Add script to sync package manager info
-rwxr-xr-xsupport/sync-package-managers.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/support/sync-package-managers.js b/support/sync-package-managers.js
new file mode 100755
index 0000000..3b44fcb
--- /dev/null
+++ b/support/sync-package-managers.js
@@ -0,0 +1,55 @@
+#!/usr/bin/env node
+
+// This should probably be its own module but complaints about bower/etc.
+// support keep coming up and I'd rather just enable the workflow here for now
+// and figure out where this should live later. -- @beaugunderson
+
+var fs = require('fs');
+var _ = require('lodash');
+
+var packageJson = require('../package.json');
+
+var IGNORES = ['**/.*', 'node_modules', 'bower_components', 'test', 'tests'];
+var INCLUDES = ['lib/async.js', 'README.md', 'LICENSE'];
+var REPOSITORY_NAME = 'caolan/async';
+
+var LICENSE_NAME = packageJson.license.type;
+
+packageJson.jam = {
+ main: packageJson.main,
+ include: INCLUDES
+};
+
+packageJson.spm = {
+ main: packageJson.main
+};
+
+packageJson.volo = {
+ main: packageJson.main,
+ ignore: IGNORES
+};
+
+var bowerSpecific = {
+ moduleType: ['amd', 'globals', 'node'],
+ license: LICENSE_NAME,
+ ignore: IGNORES,
+ authors: [packageJson.author]
+};
+
+var bowerInclude = ['name', 'description', 'version', 'main', 'keywords',
+ 'homepage', 'repository', 'devDependencies'];
+
+var componentSpecific = {
+ license: LICENSE_NAME,
+ repository: REPOSITORY_NAME,
+ scripts: [packageJson.main]
+};
+
+var componentInclude = ['name', 'description', 'version', 'keywords'];
+
+var bowerJson = _.merge({}, _.pick(packageJson, bowerInclude), bowerSpecific);
+var componentJson = _.merge({}, _.pick(packageJson, componentInclude), componentSpecific);
+
+fs.writeFileSync('./bower.json', JSON.stringify(bowerJson, null, 2));
+fs.writeFileSync('./component.json', JSON.stringify(componentJson, null, 2));
+fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, 2));