From f6eb09c03e4a5a63291d9fd0c8d2b9839855de7c Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Wed, 1 Aug 2012 13:04:53 +0000 Subject: Move cmd_build to a separate plugin It's such a small amount of code, it's possibly not worth it, but now all commands are in plugins. --- morphlib/app.py | 17 --------------- morphlib/plugins/build_plugin.py | 47 ++++++++++++++++++++++++++++++++++++++++ without-test-modules | 1 + 3 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 morphlib/plugins/build_plugin.py diff --git a/morphlib/app.py b/morphlib/app.py index 6bda8bf8..4e6a66e4 100755 --- a/morphlib/app.py +++ b/morphlib/app.py @@ -195,23 +195,6 @@ class Morph(cliapp.Application): category=DeprecationWarning) return self.create_source_pool(*args) - def cmd_build(self, args): - '''Build a binary from a morphology. - - Command line arguments are the repository, git tree-ish reference, - and morphology filename. Morph takes care of building all dependencies - before building the morphology. All generated binaries are put into the - cache. - - (The triplet of command line arguments may be repeated as many - times as necessary.) - - ''' - - build_command = morphlib.buildcommand.BuildCommand(self) - build_command = self.hookmgr.call('new-build-command', build_command) - build_command.build(args) - def _resolveref(self, lrc, rrc, reponame, ref, update=True): '''Resolves the sha1 of the ref in reponame and returns it. diff --git a/morphlib/plugins/build_plugin.py b/morphlib/plugins/build_plugin.py new file mode 100644 index 00000000..7ad254cf --- /dev/null +++ b/morphlib/plugins/build_plugin.py @@ -0,0 +1,47 @@ +# Copyright (C) 2012 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. + + +import cliapp + +import morphlib + + +class BuildPlugin(cliapp.Plugin): + + def enable(self): + self.app.add_subcommand('build', self.build, + arg_synopsis='(REPO REF FILENAME)...') + + def disable(self): + pass + + def build(self, args): + '''Build a binary from a morphology. + + Command line arguments are the repository, git tree-ish reference, + and morphology filename. Morph takes care of building all dependencies + before building the morphology. All generated binaries are put into the + cache. + + (The triplet of command line arguments may be repeated as many + times as necessary.) + + ''' + + build_command = morphlib.buildcommand.BuildCommand(self.app) + build_command = self.app.hookmgr.call('new-build-command', + build_command) + build_command.build(args) diff --git a/without-test-modules b/without-test-modules index 91fcd117..aaa796f7 100644 --- a/without-test-modules +++ b/without-test-modules @@ -14,4 +14,5 @@ morphlib/plugins/update_gits_plugin.py morphlib/plugins/trebuchet_plugin.py morphlib/plugins/branch_and_merge_plugin.py morphlib/buildcommand.py +morphlib/plugins/build_plugin.py -- cgit v1.2.1