From a4d8098b229592db40565747b0444b518bf8a6eb Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Tue, 16 Jun 2015 18:25:27 +0100 Subject: Remove foreach command We're beginning a transition away from workspaces, foreach in particular is possibly one of the least used commands, and is only mentioned in tutorials explicitly marked as 'old'. Change-Id: I2c95ce689bb5550bf50feb6b55be6c58671c4c4a --- morphlib/plugins/branch_and_merge_plugin.py | 59 ----------------------------- 1 file changed, 59 deletions(-) (limited to 'morphlib') diff --git a/morphlib/plugins/branch_and_merge_plugin.py b/morphlib/plugins/branch_and_merge_plugin.py index 08589ea6..d797eb9a 100644 --- a/morphlib/plugins/branch_and_merge_plugin.py +++ b/morphlib/plugins/branch_and_merge_plugin.py @@ -40,8 +40,6 @@ class BranchAndMergePlugin(cliapp.Plugin): 'show-system-branch', self.show_system_branch, arg_synopsis='') self.app.add_subcommand( 'show-branch-root', self.show_branch_root, arg_synopsis='') - self.app.add_subcommand('foreach', self.foreach, - arg_synopsis='-- COMMAND [ARGS...]') self.app.add_subcommand('status', self.status, arg_synopsis='') self.app.add_subcommand('branch-from-image', self.branch_from_image, @@ -425,63 +423,6 @@ class BranchAndMergePlugin(cliapp.Plugin): msg="WARNING: %(message)s", message=str(e), error=True) - def foreach(self, args): - '''Run a command in each repository checked out in a system branch. - - Use -- before specifying the command to separate its arguments from - Morph's own arguments. - - Command line arguments: - - * `--` indicates the end of option processing for Morph. - * `COMMAND` is a command to run. - * `ARGS` is a list of arguments or options to be passed onto - `COMMAND`. - - This runs the given `COMMAND` in each git repository belonging - to the current system branch that exists locally in the current - workspace. This can be a handy way to do the same thing in all - the local git repositories. - - For example: - - morph foreach -- git push - - The above command would push any committed changes in each - repository to the git server. - - ''' - - if not args: - raise cliapp.AppException('morph foreach expects a command to run') - - ws = morphlib.workspace.open('.') - sb = morphlib.sysbranchdir.open_from_within('.') - - for gd in sorted(sb.list_git_directories(), key=lambda gd: gd.dirname): - # Get the repository's original name - # Continue in the case of error, since the previous iteration - # worked in the case of the user cloning a repository in the - # system branch's directory. - try: - repo = gd.get_config('morph.repository') - except cliapp.AppException: - continue - - self.app.output.write('%s\n' % repo) - status, output, error = self.app.runcmd_unchecked( - args, cwd=gd.dirname) - self.app.output.write(output) - if status != 0: - self.app.output.write(error) - pretty_command = ' '.join(cliapp.shell_quote(arg) - for arg in args) - raise cliapp.AppException( - 'Command failed at repo %s: %s' - % (repo, pretty_command)) - self.app.output.write('\n') - self.app.output.flush() - def _load_all_sysbranch_morphologies(self, sb, loader): '''Read in all the morphologies in the root repository.''' self.app.status(msg='Loading in all morphologies') -- cgit v1.2.1