diff options
-rw-r--r-- | baserockimport/app.py | 18 |
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]: |