aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--becommands/open.py3
-rw-r--r--libbe/bugdir.py19
2 files changed, 20 insertions, 2 deletions
diff --git a/becommands/open.py b/becommands/open.py
index e6ff51e..bd0e4fa 100644
--- a/becommands/open.py
+++ b/becommands/open.py
@@ -2,4 +2,5 @@
from libbe import cmdutil
def execute(args):
assert(len(args) == 1)
- cmdutil.get_bug(args[0]).status = "open"
+ bug = cmdutil.get_bug(args[0])
+ bug.status = "open"
diff --git a/libbe/bugdir.py b/libbe/bugdir.py
index 9715011..31410d5 100644
--- a/libbe/bugdir.py
+++ b/libbe/bugdir.py
@@ -4,6 +4,7 @@ import cmdutil
import errno
import names
import rcs
+import mapfile
class NoBugDir(Exception):
def __init__(self, path):
@@ -106,5 +107,21 @@ class Bug(object):
rcs.unlink(self.get_path(name))
rcs.set_file_contents(self.get_path(name), "%s\n" % value)
+ def add_attr(self, map, name):
+ value = self.__getattribute__(name)
+ if value is not None:
+ map[name] = value
+
def save(self):
- pass
+ map = {}
+ self.add_attr(map, "summary")
+ self.add_attr(map, "creator")
+ self.add_attr(map, "target")
+ self.add_attr(map, "status")
+ self.add_attr(map, "severity")
+ path = self.get_path("values")
+ output = file(path, "wb")
+ if not os.path.exists(path):
+ rcs.add_id(path)
+ mapfile.generate(output, map)
+