summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAuke Booij (tulcod) <auke@tulcod.com>2010-06-14 13:35:42 +0200
committerAuke Booij (tulcod) <auke@tulcod.com>2010-06-14 13:35:42 +0200
commit5a772ac3d78623d625467080b9b57aa98fca268d (patch)
treef84304fc16a21907d3a28be9a0c08e1cff309935
parentEnhancing the parsing and outputting of PMS-style package data (diff)
downloadg-cran-5a772ac3d78623d625467080b9b57aa98fca268d.tar.gz
g-cran-5a772ac3d78623d625467080b9b57aa98fca268d.tar.bz2
g-cran-5a772ac3d78623d625467080b9b57aa98fca268d.zip
Some initial steps towards a PMS-style package building interface
-rwxr-xr-xg-cran.py20
-rw-r--r--phases.py13
2 files changed, 26 insertions, 7 deletions
diff --git a/g-cran.py b/g-cran.py
index b7c9dbf..f0ac139 100755
--- a/g-cran.py
+++ b/g-cran.py
@@ -2,11 +2,16 @@
import getopt, sys, os, string, urllib, re
from filetricks import *
from ebuild import *
+from phases import *
#note: this script makes use of exceptions
__doc__="Usage: "+sys.argv[0]+" <local repository directory> <action> [<action arguments>...]"
+pms_phases=['pkg_pretend','pkg_setup','src_unpack','src_prepare','src_configure','src_compile',
+ 'src_test','src_install','pkg_preinst','pkg_postinst','pkg_prerm','pkg_postrm','pkg_config','pkg_info','pkg_nofetch']
+actions_wanted=['usage','sync','list-categories','list-packages','package']+pms_phases
+
REPO_MYDIR=".g-cran"
def pmsify_package_version(version_str):
@@ -42,7 +47,7 @@ def pmsify_package_data(data,remote_repository):
e_vars=pms_pkg.ebuild_vars
#fix settings:
if 'package' not in data:
- e_vars['pn']='test'
+ e_vars['pn']='test'
else:
e_vars['pn']=data['package']
if not re.match('[a-zA-Z0-9+_].*',e_vars['pn']): #package name may not be valid according to PMS
@@ -103,7 +108,7 @@ def list_categories(repo_location):
def list_packages(repo_location):
packages=read_packages(os.path.join(repo_location,REPO_MYDIR,'PACKAGES'),repo_location)
for package in packages:
- print 'dev-R/'+package['package'],package['version']
+ print 'dev-R/'+package.ebuild_vars['pn'],package.ebuild_vars['pv']
def action_package(repo_location,package_name):
packages=read_packages(os.path.join(repo_location,REPO_MYDIR,'PACKAGES'),repo_location)
@@ -115,15 +120,16 @@ def action_package(repo_location,package_name):
print key.upper()+'=\"'+value.replace('\"','\\\"')+'\"'
elif isinstance(value,list): #list, concat items
print key.upper()+'=\"'+' '.join(value).replace('\"','\\\"')+'\"'
+ defined_phases=[]
+ global_dir=globals()
+ for pms_func in pms_phases:
+ if pms_func in global_dir:
+ defined_phases.append(pms_func)
+ print 'DEFINED_PHASES=\"'+' '.join(defined_phases)+'\"'
def usage():
print __doc__
-#available_actions={'usage':action_usage}
-pkg_funcs=['pkg_pretend','pkg_setup','src_unpack','src_prepare','src_configure','src_compile',
- 'src_test','src_install','pkg_preinst','pkg_postinst','pkg_prerm','pkg_postrm','pkg_config','pkg_info','pkg_nofetch']
-actions_wanted=['usage','sync','list-categories','list-packages','package']+pkg_funcs
-
def main():
arguments=sys.argv[1:]
#print options, arguments
diff --git a/phases.py b/phases.py
new file mode 100644
index 0000000..bb0271f
--- /dev/null
+++ b/phases.py
@@ -0,0 +1,13 @@
+#pms_phases=['pkg_pretend','pkg_setup','src_unpack','src_prepare','src_configure','src_compile',
+# 'src_test','src_install','pkg_preinst','pkg_postinst','pkg_prerm','pkg_postrm','pkg_config','pkg_info','pkg_nofetch']
+
+def src_unpack(*args,**kwargs):
+ pass
+
+def src_compile(env,local_repository):
+ pass
+
+def src_install(env,local_repository):
+ pass
+
+