diff options
author | Auke Booij (tulcod) <auke@tulcod.com> | 2010-06-14 13:35:42 +0200 |
---|---|---|
committer | Auke Booij (tulcod) <auke@tulcod.com> | 2010-06-14 13:35:42 +0200 |
commit | 5a772ac3d78623d625467080b9b57aa98fca268d (patch) | |
tree | f84304fc16a21907d3a28be9a0c08e1cff309935 | |
parent | Enhancing the parsing and outputting of PMS-style package data (diff) | |
download | g-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-x | g-cran.py | 20 | ||||
-rw-r--r-- | phases.py | 13 |
2 files changed, 26 insertions, 7 deletions
@@ -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 + + |