view piecrust/admin/scm/base.py @ 1183:62900c42d6dd

admin: Don't pass a custom environment to sub-processes. Apparently I was trying to be too clever, it's causing problems in some cases.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 21 May 2020 22:10:04 -0700
parents 5e91bc0e3b4d
children
line wrap: on
line source



class RepoStatus(object):
    def __init__(self):
        self.new_files = []
        self.edited_files = []


class SourceControl(object):
    def __init__(self, root_dir, cfg):
        self.root_dir = root_dir
        self.config = cfg

    def getStatus(self):
        raise NotImplementedError()

    def commit(self, paths, message, *, author=None):
        if not message:
            raise ValueError("No message specified for committing changes.")
        author = author or self.config.get('author')
        self._doCommit(paths, message, author)

    def _doCommit(self, paths, message, author):
        raise NotImplementedError()


def _s(strs):
    """ Convert a byte array to string using UTF8 encoding. """
    if strs is None:
        return None
    assert isinstance(strs, bytes)
    return strs.decode('utf8')