| @@ -49,12 +49,12 @@ class Command(BaseCommand): | |||
| try: | |||
| repo_name = data.args[1] | |||
| except IndexError: | |||
| repos = "\x0302" + "\x0301, \x0301".join(self.repos) + "\x0301" | |||
| repos = self.get_repos() | |||
| msg = "which repo do you want to work with (options are {0})?" | |||
| self.reply(data, msg.format(repos)) | |||
| return | |||
| if repo_name not in self.repos: | |||
| repos = "\x0302" + "\x0301, \x0301".join(self.repos) + "\x0301" | |||
| repos = self.get_repos() | |||
| msg = "repository must be one of the following: {0}" | |||
| self.reply(data, msg.format(repos)) | |||
| return | |||
| @@ -76,6 +76,22 @@ class Command(BaseCommand): | |||
| msg = "unknown argument: \x0303{0}\x0301.".format(data.args[0]) | |||
| self.reply(data, msg) | |||
| def get_repos(self): | |||
| data = self.repos.iteritems() | |||
| repos = ["\x0302{0}\x0301 ({1})".format(k, v) for k, v in data] | |||
| return ", ".join(repos) | |||
| def get_remote(self): | |||
| try: | |||
| remote_name = self.data.args[2] | |||
| except IndexError: | |||
| remote_name = "origin" | |||
| try: | |||
| return getattr(self.repo.remotes, remote_name) | |||
| except AttributeError: | |||
| msg = "unknown remote: \x0302{0}\x0301".format(remote_name) | |||
| self.reply(self.data, msg) | |||
| def do_help(self): | |||
| """Display all commands.""" | |||
| help = { | |||
| @@ -86,11 +102,12 @@ class Command(BaseCommand): | |||
| "pull": "update everything from the remote server", | |||
| "status": "check if we are up-to-date", | |||
| } | |||
| msg = "" | |||
| subcommands = "" | |||
| for key in sorted(help.keys()): | |||
| msg += "\x0303{0}\x0301 ({1}), ".format(key, help[key]) | |||
| msg = msg[:-2] # Trim last comma and space | |||
| self.reply(self.data, "sub-commands are: {0}.".format(msg)) | |||
| subcommands += "\x0303{0}\x0301 ({1}), ".format(key, help[key]) | |||
| subcommands = subcommands[:-2] # Trim last comma and space | |||
| msg = "sub-commands are: {0}; repos are: {1}. Syntax: !git \x0303subcommand\x0301 \x0302repo\x0301" | |||
| self.reply(self.data, msg.format(subcommands, get_repos())) | |||
| def do_branch(self): | |||
| """Get our current branch.""" | |||
| @@ -153,17 +170,6 @@ class Command(BaseCommand): | |||
| msg = "branch \x0302{0}\x0301 has been deleted locally." | |||
| self.reply(self.data, msg.format(target)) | |||
| def get_remote(self): | |||
| try: | |||
| remote_name = self.data.args[2] | |||
| except IndexError: | |||
| remote_name = "origin" | |||
| try: | |||
| return getattr(self.repo.remotes, remote_name) | |||
| except AttributeError: | |||
| msg = "unknown remote: \x0302{0}\x0301".format(remote_name) | |||
| self.reply(self.data, msg) | |||
| def do_pull(self): | |||
| """Pull from our remote repository.""" | |||
| branch = current_branch = self.repo.active_branch.name | |||