def notify(self, message, level=NORMAL_LEVEL_IMPL): if message == "": return if level == ERROR_LEVEL_IMPL: self._consecutive_errors = self._consecutive_errors + 1 else: self._consecutive_errors = 0 if self.disable_after_n_errors > 0: if self._consecutive_errors < self.disable_after_n_errors: cmd = '%s --message "%s" --priority %d --title "%s"' % (GROWLNOTIFY, message, level, self.title) exec_cmd(cmd)
def notify(self, message, level=NORMAL_LEVEL_IMPL): if message == "": return if level == ERROR_LEVEL_IMPL: self._consecutive_errors = self._consecutive_errors + 1 else: self._consecutive_errors = 0 if self.disable_after_n_errors > 0: if self._consecutive_errors < self.disable_after_n_errors: cmd = "%s \"%s\" \"%s\"" % (NOTIFY_SEND, self.title, message) exec_cmd(cmd)
def merge(self, remote='origin', branch='master'): cmd = "%s merge %s/%s" % (GIT, remote, branch) stdout,stderr = exec_cmd(cmd, self.repo_directory) if ('CONFLICT' in stdout): return NOT_OK, stdout return OK,stdout
def fetch(self): cmd = "%s fetch" % GIT stdout,stderr = exec_cmd(cmd, self.repo_directory) if (stderr != ''): return NOT_OK,stderr return OK,stdout
def commit_all(self, message): cmd = "%s commit --all -m \"%s\"" % (GIT, message) stdout,stderr = exec_cmd(cmd, self.repo_directory) if (stderr != ''): return NOT_OK,stderr return OK,stdout
def add(self, filename='.'): cmd = "%s add %s" % (GIT, filename) stdout,stderr = exec_cmd(cmd, self.repo_directory) if (stderr != ''): return NOT_OK,stderr return OK,stdout
def push(self, remote='origin', branch='master'): cmd = "%s push --porcelain %s %s" % (GIT, remote, branch) stdout,stderr = exec_cmd(cmd, self.repo_directory) if ('[rejected]' in stdout or 'fatal' in stderr): return NOT_OK,stdout return OK,stdout
def pull(self, remote='origin', branch='master'): cmd = "%s pull --ff-only %s %s" % (GIT, remote, branch) stdout,stderr = exec_cmd(cmd, self.repo_directory) if ('error' in stdout): return NOT_OK,stdout return OK,stdout
def force_ours(self, unmerged): # checkout "ours" cmd = "%s checkout --ours %s" % (GIT, unmerged[1][3]) stdout,stderr = exec_cmd(cmd, self.repo_directory) if (stderr != ''): return NOT_OK,stderr return OK,stdout
def save_theirs(self, unmerged, id): # checkout "theirs" and move to a temporary file cmd = "%s checkout --theirs %s" % (GIT, unmerged[2][3]) stdout,stderr = exec_cmd(cmd, self.repo_directory) if (stderr != ''): return NOT_OK,stderr src = os.path.join(self.repo_directory, unmerged[2][3]) dst = os.path.join(self.repo_directory, "%s.%s.%s" % (id, unmerged[2][1], unmerged[2][3])) logging.debug("move: %s -> %s" % (src, dst)) shutil.move(src, dst) return OK,""
def get_unmerged(self): cmd = "%s ls-files -u" % GIT stdout,stderr = exec_cmd(cmd, self.repo_directory) return self._parse_ls_files(stdout, stderr)
def status(self): cmd = "%s status --porcelain -uall" % GIT stdout,stderr = exec_cmd(cmd, self.repo_directory) return self._parse_status(stdout, stderr)