You are not logged in.
#!/usr/bin/env python
import os, sys
def parseArgumentList(arg_list):
"""Parses the arguments to be used in the main function"""
if len(arg_list)==2:
return arg_list[1]
return 'PKGBUILD'
def GenerateTempBuild(pkgbuild):
"""Returns a modified PKGBUILD with a dummy build() function"""
start_build_index = pkgbuild.index('build() {n')
braces_counter=1
line_remove_counter=0
for i in range( start_build_index+1, len(pkgbuild) ):
if pkgbuild[i].find("{")!=-1:
braces_counter+=1
line_remove_counter+=1
continue
if pkgbuild[i].find("}")!=-1:
braces_counter-=1
if braces_counter==0:
break
line_remove_counter+=1
continue
line_remove_counter+=1
for i in range(line_remove_counter):
pkgbuild.pop(start_build_index+1)
pkgbuild.insert(start_build_index+1, ' mv $startdir/.pkg-repackage/* $startdir/pkg/n')
return pkgbuild
def main(args):
orig_pkgbuild_path = parseArgumentList(args)
orig_pkgbuild = file(orig_pkgbuild_path,'r').readlines()
modified_pkgbuild = GenerateTempBuild(orig_pkgbuild)
modified_pkgbuild_file = file('.pkgbuild-repackage','w')
for i in range(len(modified_pkgbuild)):
modified_pkgbuild_file.write(modified_pkgbuild[i])
modified_pkgbuild_file.close()
os.system('mkdir .pkg-repackage')
os.system('mv pkg/* .pkg-repackage')
os.system('makepkg -e -f -p .pkgbuild-repackage')
os.system('rm .pkgbuild-repackage')
if __name__=="__main__":
main(sys.argv)
This is a very initial draft. I tested it and it seems to work, still I can't guarantee it'll work in any case.
Anyway, this is useful for adding dependencies to an existing package, adding install scripts in case you forgot those and so on.
Until it's implemented more properly in makepkg,
Enjoy.
Some PKGBUILDs: http://members.lycos.co.uk/sweiss3
Offline