summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZara Zaimeche <zara.zaimeche@codethink.co.uk>2015-01-09 13:37:39 +0000
committerZara Zaimeche <zara.zaimeche@codethink.co.uk>2015-01-09 15:00:27 +0000
commit7440829b18a04f678449ad0f021a5a0f6d6cb526 (patch)
tree96ed94f72da8ad298e060b68ccc9a853660a7f57
parent01e7f8c0480cd1328c2ff07f3b7f5e6f64134603 (diff)
downloadimport-7440829b18a04f678449ad0f021a5a0f6d6cb526.tar.gz
Add npm to_chunk
-rwxr-xr-xbaserockimport/exts/npm.to_chunk72
1 files changed, 72 insertions, 0 deletions
diff --git a/baserockimport/exts/npm.to_chunk b/baserockimport/exts/npm.to_chunk
new file mode 100755
index 0000000..02a6ae5
--- /dev/null
+++ b/baserockimport/exts/npm.to_chunk
@@ -0,0 +1,72 @@
+#!/usr/bin/env node
+//
+// Copyright (C) 2014 Codethink Limited
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+YAML = require('yamljs');
+npm = require("npm");
+
+base = require("./importer_base");
+
+npm.load(function(er, npm) {
+ var packageName;
+ var packageVersion;
+ var packageFullName;
+
+ if (process.argv.length === 4) {
+ packageName = process.argv[3];
+ packageFullName = packageName;
+ } else if (process.argv.length === 5) {
+ packageName = process.argv[3];
+ packageVersion = process.argv[4];
+ packageFullName = packageName + '@' + packageVersion;
+ } else
+ throw("Error! Wrong number of command line arguments! Usage: " +
+ "./npm.to_chunk SOURCE_DIR NAME VERSION");
+
+ if (er) throw er;
+
+ npm.commands.view([packageFullName], "silent", getDescription);
+
+ function getDescription(er, packageInfo) {
+
+ if (er) throw er;
+
+ package = base.getFirstItem(packageInfo);
+ description = package.description;
+
+ description = description + " (morphology generated by baserock import tool)";
+ products = [];
+ configureCommands = [];
+ buildCommands = [];
+ installCommands = ['mkdir -p "$DESTDIR"/"$PREFIX"/lib/node_modules/' + packageName,
+ 'cp -a * "$DESTDIR"/"$PREFIX"/lib/node_modules/'+ packageName,
+ 'npm config set prefix "$DESTDIR"/"$PREFIX"',
+ 'npm config set unsafe-perm true',
+ 'cd "$DESTDIR"/"$PREFIX" && npm build --global --verbose "$DESTDIR"/"$PREFIX"/lib/node_modules/'+ packageName];
+
+ morphology = {
+ 'name' : packageFullName,
+ 'kind' : 'chunk',
+ 'description' : description,
+ 'build-system' : 'manual',
+ 'install-commands' : installCommands,
+ };
+
+ yamlString = YAML.stringify(morphology, 4);
+ console.log(yamlString);
+ };
+});
+