diff options
author | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2014-12-05 18:12:35 +0000 |
---|---|---|
committer | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2014-12-05 18:12:35 +0000 |
commit | 611b0f4d831301f608677f10b756b0d47de59bab (patch) | |
tree | c01e08fa160603c9e35e5ec694ad1801fe9207cd /baserockimport/app.py | |
parent | f781b5d6b976d4fcd7d6148304c12b9e3db396e0 (diff) | |
download | import-611b0f4d831301f608677f10b756b0d47de59bab.tar.gz |
Add python subcommand
Diffstat (limited to 'baserockimport/app.py')
-rw-r--r-- | baserockimport/app.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/baserockimport/app.py b/baserockimport/app.py index 3ebe7cb..c8f5ae6 100644 --- a/baserockimport/app.py +++ b/baserockimport/app.py @@ -82,6 +82,8 @@ class BaserockImportApplication(cliapp.Application): arg_synopsis='REPO PROJECT_NAME SOFTWARE_NAME') self.add_subcommand('rubygems', self.import_rubygems, arg_synopsis='GEM_NAME [GEM_VERSION]') + self.add_subcommand('python', self.import_python, + arg_synopsis='PACKAGE_NAME [VERSION]') self.stdout_has_colours = self._stream_has_colours(sys.stdout) @@ -183,3 +185,22 @@ class BaserockImportApplication(cliapp.Application): goal_kind='rubygems', goal_name=args[0], goal_version='master') loop.enable_importer('rubygems', strata=['strata/ruby.morph']) loop.run() + + def import_python(self, args): + '''Import one or more python packages.''' + if len(args) < 1 or len(args) > 2: + raise cliapp.AppException( + 'Please pass the name of the python package on the commandline.') + + package_name = args[0] + + # TODO: master for default for us probably doesn't make sense + package_version = args[1] if len(args) == 2 else 'master' + + # TODO: maybe rename so goal_kind is 'python' rather than 'pip' + loop = baserockimport.mainloop.ImportLoop(app=self, + goal_kind='pip', + goal_name=package_name, + goal_version=package_version) + loop.enable_importer('pip', strata=['strata/core.morph']) + loop.run() |