diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2012-08-01 13:04:53 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2012-08-01 13:39:33 +0000 |
commit | f6eb09c03e4a5a63291d9fd0c8d2b9839855de7c (patch) | |
tree | 37b5da7fbb6f5d3f034f09f3b5fd89d6fabbf73b /morphlib/plugins/build_plugin.py | |
parent | 2bf9843afba2d4f2a81bb136ec693f7b52803639 (diff) | |
download | morph-f6eb09c03e4a5a63291d9fd0c8d2b9839855de7c.tar.gz |
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.
Diffstat (limited to 'morphlib/plugins/build_plugin.py')
-rw-r--r-- | morphlib/plugins/build_plugin.py | 47 |
1 files changed, 47 insertions, 0 deletions
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) |