diff piecrust/admin/scm/base.py @ 778:5e91bc0e3b4d

internal: Move admin panel code into the piecrust package.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 16 Jul 2016 15:02:24 +0200
parents foodtruck/scm/base.py@a77b4656c602
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/piecrust/admin/scm/base.py	Sat Jul 16 15:02:24 2016 +0200
@@ -0,0 +1,33 @@
+
+
+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')
+