summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-12-05 18:12:35 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-12-05 18:12:35 +0000
commit611b0f4d831301f608677f10b756b0d47de59bab (patch)
treec01e08fa160603c9e35e5ec694ad1801fe9207cd
parentf781b5d6b976d4fcd7d6148304c12b9e3db396e0 (diff)
downloadimport-611b0f4d831301f608677f10b756b0d47de59bab.tar.gz
Add python subcommand
-rw-r--r--baserockimport/app.py21
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()