diff options
Diffstat (limited to 'bin/ebuild')
-rwxr-xr-x | bin/ebuild | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/bin/ebuild b/bin/ebuild new file mode 100755 index 000000000..2c4ed713d --- /dev/null +++ b/bin/ebuild @@ -0,0 +1,61 @@ +#!/usr/bin/python -O +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-src/portage/bin/ebuild,v 1.18.2.3 2005/05/07 04:32:59 ferringb Exp $ + +import os,sys +sys.path = ["/usr/lib/portage/pym"]+sys.path +import portage_util + +def getroot(): + try: + a=os.environ["ROOT"] + if a == '/': + return '/' + except SystemExit, e: + raise # Needed else we can't exit. + except: + return '/' + return os.path.normpath(a)+'/' + +os.environ["PORTAGE_CALLER"]="ebuild" + +if len(sys.argv)<=2: + print "expecting two arguments." + sys.exit(1) + +import getopt + +debug=0 + +opts,pargs=getopt.getopt(sys.argv[1:],'',['debug']) +for opt in opts: + if opt[0]=='--debug': + debug=1 + +if "merge" in pargs: + print "Disabling noauto in features... merge disables it. (qmerge doesn't)" + os.environ["FEATURES"] = os.environ.get("FEATURES", "") + " -noauto" + +import portage + +for x in pargs[1:]: + try: + tmpsettings = portage.config(clone=portage.settings) + + if x in ['clean','config']: + cleanup=1 + else: + cleanup=0 + a=portage.doebuild(pargs[0],x,getroot(),tmpsettings,debug=debug,cleanup=cleanup) + except KeyboardInterrupt: + print "(interrupted by user -- ctrl-C?)" + a=1 + except IOError: + a=1 + print "ebuild: this ebuild generated output during the depend phase (bad)" + if a == None: + portage_util.writemsg("Could not run the required binary?\n") + sys.exit(127) + if a: + sys.exit(a) |