summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-05 15:20:09 -0500
committerYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-05 15:20:09 -0500
commit6e14fd63cf74c50898e68dee8398fa3222fb2ec5 (patch)
tree20f27fb863b8a5cf48bc63870391b4a10d677822 /modules
parentde3320e82e5a14fe54ebb27a0ef0c0cb381128f4 (diff)
downloadfedora-devshell-6e14fd63cf74c50898e68dee8398fa3222fb2ec5.tar.gz
fedora-devshell-6e14fd63cf74c50898e68dee8398fa3222fb2ec5.tar.xz
fedora-devshell-6e14fd63cf74c50898e68dee8398fa3222fb2ec5.zip
Add sourceball to Darcs
Diffstat (limited to 'modules')
-rw-r--r--modules/build.py2
-rw-r--r--modules/darcs.py27
-rw-r--r--modules/package.py9
3 files changed, 32 insertions, 6 deletions
diff --git a/modules/build.py b/modules/build.py
index f5f7e66..60f5104 100644
--- a/modules/build.py
+++ b/modules/build.py
@@ -41,7 +41,7 @@ class Build(Directory):
with pwd(pkg.dir):
symlink(pkg.spec_file,
join(self.dir, 'SPECS', pkg.spec_file()))
- sball = pkg.cfg['sourceball']
+ sball = pkg.sourceball
symlink(sball, join(self.dir, 'SOURCES', sball))
patches = [f for f in listdir(getcwd()) if f.endswith('.patch')]
for patch in patches:
diff --git a/modules/darcs.py b/modules/darcs.py
index f15ef6b..add869f 100644
--- a/modules/darcs.py
+++ b/modules/darcs.py
@@ -22,9 +22,10 @@ import re
from contextlib import contextmanager
from os import getcwd
+from os.path import join
from subprocess import Popen, PIPE
-from base.util import pwd, log, rm, log_file
+from base.util import pwd, log, rm, log_file, copy, move
from modules.revisioncontrol import RevisionControl
hash_re = re.compile(r'hash=\'(\w|-|.*?)\'', re.MULTILINE)
@@ -34,7 +35,10 @@ class Darcs(RevisionControl):
_type = 'darcs'
def load_dir(self, dir):
super(RevisionControl, self).load_dir(dir)
- self.vc_url = self.cfg['vc_url']
+
+ @property
+ def vc_url(self):
+ return self.cfg['vc_url']
def source_dir(self, *args):
return self.cfg['source']
@@ -65,7 +69,7 @@ class Darcs(RevisionControl):
stdout = darcs_out, stderr = darcs_out)
log.info('darcs get %s %s, please wait....' % (src, tgt))
p.wait()
- self.set_current_head()
+ self.set_current_head()
def checkout(self, tgt, url, *args):
self.cfg['vc_url'] = url
@@ -116,4 +120,21 @@ class Darcs(RevisionControl):
with self.src('--tag', tag):
yield
+ @property
+ def sourceball(self):
+ with pwd(self.source_dir()):
+ name = self.pkg_name
+ ver = self.ver()
+ date = self.date
+ full_name = '%s-%s.%sdarcs' % (name, ver, date)
+ with log_file('darcs.log') as darcs_out:
+ p = Popen(['darcs', 'dist', '-d', full_name,
+ '--repodir', self.source_dir()],
+ stdout=darcs_out, stderr=darcs_out)
+ log.info('generating tarball %s.tar.gz, please wait...' % full_name)
+ p.wait()
+ sourceball = full_name + 'tar.gz'
+ mv(join(self.source_dir(), sourceball), sourceball)
+ return sourceball
+
__all__ = ['Darcs']
diff --git a/modules/package.py b/modules/package.py
index f7b875c..47f9803 100644
--- a/modules/package.py
+++ b/modules/package.py
@@ -18,11 +18,11 @@
from __future__ import with_statement
-from os.patch import split
+from os.path import split
from base.base import log
from base.exceptions import ExecutionException
-from base.util import pwd, copy, mv
+from base.util import pwd, copy, move
from base.profiles import ver_rel, name
from modules.directory import Directory
@@ -72,6 +72,11 @@ class Package(Directory):
ver, rel = ver_rel(self.spec_file, profile.dist_defines())
return '%s-%s-%s.src.rpm' % (self.pkg_name, ver, rel)
+ def ver(self, profile):
+ with pwd(self.dir):
+ ver, rel = ver_rel(self.spec_file, profile.dist_defines() if profile else '')
+ return ver
+
def source_dir(self, *args):
raise NotImplementedError