summaryrefslogtreecommitdiff
path: root/baserockimport/app.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 16:45:32 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 16:45:32 +0000
commitb092a66c21cb977a872d2b45d8edec31d96eeb28 (patch)
tree3402b26fa0939782153090ad1d169b0073bf3122 /baserockimport/app.py
parent45c31c5d34d5c98627af3953027a2a8a35adfce4 (diff)
parente0cf555d06901e8c83f5166b2731dab3a5f46072 (diff)
downloadimport-b092a66c21cb977a872d2b45d8edec31d96eeb28.tar.gz
Merge remote-tracking branch 'zara-github/trynew'
Reviewed-By: Jim MacArthur <jim.macarthur@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
Diffstat (limited to 'baserockimport/app.py')
-rw-r--r--baserockimport/app.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/baserockimport/app.py b/baserockimport/app.py
index 2ab2c87..cd3203e 100644
--- a/baserockimport/app.py
+++ b/baserockimport/app.py
@@ -78,6 +78,8 @@ class BaserockImportApplication(cliapp.Application):
return False
def setup(self):
+ self.add_subcommand('npm', self.import_npm,
+ arg_synopsis='PACKAGE [VERSION]')
self.add_subcommand('omnibus', self.import_omnibus,
arg_synopsis='REPO PROJECT_NAME SOFTWARE_NAME')
self.add_subcommand('rubygems', self.import_rubygems,
@@ -170,6 +172,22 @@ class BaserockImportApplication(cliapp.Application):
loop.enable_importer('rubygems')
loop.run()
+ def import_npm(self, args):
+ '''Import one or more Node.js npm packages.'''
+ if len(args) not in [1, 2]:
+ raise cliapp.AppException(
+ 'Please pass the name and version of an npm package on the '
+ 'commandline.')
+
+ goal_name = args[0]
+ goal_version = args[1] if len(args) == 2 else 'master'
+
+ loop = baserockimport.mainloop.ImportLoop(
+ app=self,
+ goal_kind='npm', goal_name=goal_name, goal_version=goal_version)
+ loop.enable_importer('npm', strata=['strata/nodejs.morph'])
+ loop.run()
+
def import_rubygems(self, args):
'''Import one or more RubyGems.'''
if len(args) not in [1, 2]: