From 7440829b18a04f678449ad0f021a5a0f6d6cb526 Mon Sep 17 00:00:00 2001 From: Zara Zaimeche Date: Fri, 9 Jan 2015 13:37:39 +0000 Subject: Add npm to_chunk --- baserockimport/exts/npm.to_chunk | 72 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100755 baserockimport/exts/npm.to_chunk 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); + }; +}); + -- cgit v1.2.1