summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-18 17:10:15 -0500
committerYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-18 17:10:15 -0500
commitc98a858abe7d209b602aaad6e01dbbf8e66bdf21 (patch)
tree61f56439a4a7980c6265438f1409be37c04740f4 /modules
parentd479ded1669de67df94fe62c2c1c896a4694b874 (diff)
downloadfedora-devshell-c98a858abe7d209b602aaad6e01dbbf8e66bdf21.tar.gz
fedora-devshell-c98a858abe7d209b602aaad6e01dbbf8e66bdf21.tar.xz
fedora-devshell-c98a858abe7d209b602aaad6e01dbbf8e66bdf21.zip
Refactor some generic stuff out of darcs into packagesource
Diffstat (limited to 'modules')
-rw-r--r--modules/darcs.py23
-rw-r--r--modules/packagesource.py28
2 files changed, 28 insertions, 23 deletions
diff --git a/modules/darcs.py b/modules/darcs.py
index 5ac1c9f..7c6eda4 100644
--- a/modules/darcs.py
+++ b/modules/darcs.py
@@ -85,29 +85,6 @@ class Darcs(RevisionControl):
'''
return self.cfg['hackage_name']
- @contextmanager
- def src_dir(self, *args):
- '''executes a code block inside a specific branch and or checkout
- '''
- with src(*args):
- with pwd(self.cfg['source']):
- yield
-
- @contextmanager
- def src(self, *args):
- '''executes a code block with a particular branch or checkout
-
- if there are no args, this block is executed in the raw
- '''
- if args:
- old_src = self.cfg['source']
- self.set_cur_to(*args)
- yield
- if args:
- rm(self.cfg['source'])
- self.cfg['source'] = old_src
- self.set_current_src()
-
def set_current_src(self):
'''sets the current internal state to reflect the current head
diff --git a/modules/packagesource.py b/modules/packagesource.py
index d556ef5..b0b87b8 100644
--- a/modules/packagesource.py
+++ b/modules/packagesource.py
@@ -74,6 +74,34 @@ class PackageSource(Directory):
'''
return join(self.dir, self.source)
+ @contextmanager
+ def src_dir(self, *args):
+ '''executes a code block inside a specific branch and or checkout
+ '''
+ with src(*args):
+ with pwd(self.source_dir):
+ yield
+
+ @contextmanager
+ def src(self, *args):
+ '''executes a code block with a particular branch or checkout
+
+ if there are no args, this block is executed in the raw
+ '''
+ if args:
+ old_src = self.cfg['source']
+ self.set_cur_to(*args)
+ yield
+ if args:
+ self.cfg['source'] = old_src
+ self.set_current_src()
+
+ def set_current_src(self):
+ raise NotImplementedError
+
+ def set_cur_to(self, *args):
+ raise NotImplementedError
+
def branch(self, *args):
raise NotImplementedError