aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/status2
-rw-r--r--libbe/arch.py15
-rw-r--r--libbe/bugdir.py16
-rw-r--r--libbe/rcs.py14
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)