diff options
-rw-r--r-- | .be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status | 2 | ||||
-rw-r--r-- | libbe/arch.py | 15 | ||||
-rw-r--r-- | libbe/bugdir.py | 16 | ||||
-rw-r--r-- | libbe/rcs.py | 14 |
4 files changed, 39 insertions, 8 deletions
diff --git a/.be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status b/.be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status index f510327..1ac2082 100644 --- a/.be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status +++ b/.be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status @@ -1 +1 @@ -open +closed diff --git a/libbe/arch.py b/libbe/arch.py new file mode 100644 index 0000000..6cc3dbb --- /dev/null +++ b/libbe/arch.py @@ -0,0 +1,15 @@ +from popen2 import Popen4 +import os + +def invoke(args): + q=Popen4(args) + output = q.fromchild.read() + status = q.wait() + if os.WIFEXITED(status): + return (os.WEXITSTATUS(status)) + +def add_id(filename): + return invoke(("tla", "add-id", filename)) + +def delete_id(filename): + return invoke(("tla", "delete-id", filename)) diff --git a/libbe/bugdir.py b/libbe/bugdir.py index 7fc1eda..fd7b0f6 100644 --- a/libbe/bugdir.py +++ b/libbe/bugdir.py @@ -3,6 +3,7 @@ import os.path import cmdutil import errno import names +import rcs class NoBugDir(cmdutil.UserError): def __init__(self, path): @@ -28,10 +29,11 @@ def test_version(path): def create_bug_dir(path): root = os.path.join(path, ".be") - os.mkdir(root) - os.mkdir(os.path.join(root, "bugs")) - f = file(os.path.join(root, "version"), "wb") - f.write("Bugs Everywhere Tree 0 0\n") + rcs.mkdir(root) + rcs.mkdir(os.path.join(root, "bugs")) + rcs.set_file_contents(os.path.join(root, "version"), + "Bugs Everywhere Tree 0 0\n") + return BugDir(path) class BugDir: @@ -49,7 +51,7 @@ class BugDir: def new_bug(self): uuid = names.uuid() path = os.path.join(self.bugs_path, uuid) - os.mkdir(path) + rcs.mkdir(path) return Bug(self.bugs_path, uuid) @@ -101,6 +103,6 @@ class Bug(object): def _set_value(self, name, value): if value is None: - os.unlink(self.get_path(name)) - file(self.get_path(name), "wb").write("%s\n" % value) + rcs.unlink(self.get_path(name)) + rcs.set_file_contents(self.get_path(name), "%s\n" % value) diff --git a/libbe/rcs.py b/libbe/rcs.py new file mode 100644 index 0000000..0da1513 --- /dev/null +++ b/libbe/rcs.py @@ -0,0 +1,14 @@ +from arch import * +def mkdir(path): + os.mkdir(path) + add_id(path) + +def set_file_contents(path, contents): + add = not os.path.exists(path) + file(path, "wb").write(contents) + if add: + add_id(path) + +def unlink(path): + os.unlink(path) + delete_id(filename) |