Skip to content

Instantly share code, notes, and snippets.

@jself
Created March 26, 2012 20:50
Show Gist options
  • Save jself/2209567 to your computer and use it in GitHub Desktop.
Save jself/2209567 to your computer and use it in GitHub Desktop.
git multi repos processor
#!/usr/bin/env python
from pbs import git, cd, pwd
from cmd2 import Cmd
class GitPrompt(Cmd):
def __init__(self, *args, **kwargs):
Cmd.__init__(self, *args, **kwargs)
self.base_dir = '/home/jself/devel/cms_dev/src/'
self.repos = ['storyville', 'medley-templates', 'signin']
self.mk_repos_dirs()
def mk_repos_dirs(self):
self.repos_dirs = [self.base_dir + repos for repos in self.repos]
def all(self, f, *args, **kwargs):
starting = unicode(pwd()).strip('\n')
kwargs['_fg'] = True
for repos in self.repos_dirs:
cd(repos)
print f(*args, **kwargs)
cd(starting)
def default(self, args, **kwargs):
self.all(git, args.split(' '), **kwargs)
def do_set_base(self, args):
""" Sets the base directory """
self.base_dir=args
self.mk_repos_dirs()
def do_set_repos(self, args):
""" Sets the repos to use (comma delimited)"""
self.repos = args.split(',')
self.mk_repos_dirs()
prompt = GitPrompt()
prompt.cmdloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment