Mercurial > piecrust2
view piecrust/admin/scm/git.py @ 816:d9b1e5ad869f
docs: Add space before link
I always thought that adding a break line, it would automatically add a space. But from the current documentation page https://bolt80.com/piecrust/en/latest/getting-started/, looks like if the next line starts with a link, it gets truncated.
author | Bruno P. Kinoshita <kinow@users.noreply.github.com> |
---|---|
date | Sat, 22 Oct 2016 21:26:41 +1300 |
parents | 82509bce94ca |
children |
line wrap: on
line source
import os import logging import tempfile import subprocess from .base import SourceControl, RepoStatus, _s logger = logging.getLogger(__name__) class GitSourceControl(SourceControl): def __init__(self, root_dir, cfg): super(GitSourceControl, self).__init__(root_dir, cfg) self.git = cfg.get('exe', 'git') def getStatus(self): res = RepoStatus() st_out = self._run('status', '-s') for line in st_out.split('\n'): if not line: continue if line.startswith('?? '): path = line[3:].strip() if path[-1] == '/': import glob res.new_files += [ f for f in glob.glob(path + '**', recursive=True) if f[-1] != '/'] else: res.new_files.append(path) elif line.startswith(' M '): res.edited_files.append(line[3:]) return res def _doCommit(self, paths, message, author): self._run('add', *paths) # Create a temp file with the commit message. f, temp = tempfile.mkstemp() with os.fdopen(f, 'w') as fd: fd.write(message) # Commit and clean up the temp file. try: commit_args = list(paths) + ['-F', temp] if author: commit_args += ['--author="%s"' % author] self._run('commit', *commit_args) finally: os.remove(temp) def _run(self, cmd, *args, **kwargs): exe = [self.git] exe.append(cmd) exe += args logger.debug("Running Git: " + str(exe)) proc = subprocess.Popen( exe, stdout=subprocess.PIPE, cwd=self.root_dir) out, _ = proc.communicate() encoded_out = _s(out) return encoded_out