@ -22,6 +22,10 @@ chroot_path = None
# Search paths to use for Filename(), used to find files
# Search paths to use for Filename(), used to find files
search_paths = [ ]
search_paths = [ ]
# Tools and the packages that contain them, on debian
packages = {
' lz4 ' : ' liblz4-tool ' ,
}
def PrepareOutputDir ( dirname , preserve = False ) :
def PrepareOutputDir ( dirname , preserve = False ) :
""" Select an output directory, ensuring it exists.
""" Select an output directory, ensuring it exists.
@ -128,8 +132,31 @@ def Align(pos, align):
def NotPowerOfTwo ( num ) :
def NotPowerOfTwo ( num ) :
return num and ( num & ( num - 1 ) )
return num and ( num & ( num - 1 ) )
def PathHasFile ( fname ) :
""" Check if a given filename is in the PATH
Args :
fname : Filename to check
Returns :
True if found , False if not
"""
for dir in os . environ [ ' PATH ' ] . split ( ' : ' ) :
if os . path . exists ( os . path . join ( dir , fname ) ) :
return True
return False
def Run ( name , * args ) :
def Run ( name , * args ) :
command . Run ( name , * args , cwd = outdir )
try :
return command . Run ( name , * args , cwd = outdir , capture = True )
except :
if not PathHasFile ( name ) :
msg = " Plesae install tool ' %s ' " % name
package = packages . get ( name )
if package :
msg + = " (e.g. from package ' %s ' ) " % package
raise ValueError ( msg )
raise
def Filename ( fname ) :
def Filename ( fname ) :
""" Resolve a file path to an absolute path.
""" Resolve a file path to an absolute path.