本文整理汇总了Python中EmergeDebug.new_line方法的典型用法代码示例。如果您正苦于以下问题:Python EmergeDebug.new_line方法的具体用法?Python EmergeDebug.new_line怎么用?Python EmergeDebug.new_line使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EmergeDebug
的用法示例。
在下文中一共展示了EmergeDebug.new_line方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: getVCRedistLocation
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
def getVCRedistLocation(self, compiler):
_file = None
if compiler.isMSVC2015():
if compiler.isX64():
_file = os.path.join( self.getVCRuntimeLibrariesLocation(), "1033", "vcredist_x64.exe" )
elif compiler.isX86():
_file = os.path.join( self.getVCRuntimeLibrariesLocation(), "1033", "vcredist_x86.exe" )
if not os.path.isfile(_file):
_file = None
EmergeDebug.new_line()
EmergeDebug.error("Assuming we can't find a c++ redistributable because the user hasn't got one. Must be fixed manually.")
return _file
示例2: generateNSISInstaller
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
def generateNSISInstaller( self ):
""" runs makensis to generate the installer itself """
self.isInstalled()
if self.package.endswith( "-package" ):
shortPackage = self.package[ : -8 ]
else:
shortPackage = self.package
if not "setupname" in self.defines or not self.defines[ "setupname" ]:
self.defines[ "setupname" ] = "%s-%s-setup-%s.exe" % ( shortPackage, compiler.architecture(), self.buildTarget )
if not "srcdir" in self.defines or not self.defines[ "srcdir" ]:
self.defines[ "srcdir" ] = self.imageDir()
if not "company" in self.defines or not self.defines[ "company" ]:
self.defines[ "company" ] = "KDE"
if not "productname" in self.defines or not self.defines[ "productname" ]:
self.defines[ "productname" ] = shortPackage.capitalize()
if not "version" in self.defines or not self.defines[ "version" ]:
self.defines[ "version" ] = self.buildTarget
if not "executable" in self.defines or not self.defines[ "executable" ]:
self.defines[ "executable" ] = ""
if "license" in self.defines and self.defines[ "license" ]:
self.defines[ "license" ] = "!insertmacro MUI_PAGE_LICENSE \"%s\"" % self.defines[ "license" ]
else:
self.defines[ "license" ] = ""
if "icon" in self.defines and self.defines[ "icon" ]:
self.defines[ "icon" ] = "!define MUI_ICON \"%s\"" % self.defines[ "icon" ]
else:
self.defines[ "icon" ] = ""
if not self.scriptname:
self.scriptname = os.path.join( os.path.dirname( __file__ ), "NullsoftInstaller.nsi" )
self.defines[ "architecture" ] = compiler.architecture()
# make absolute path for output file
if not os.path.isabs( self.defines[ "setupname" ] ):
dstpath = self.packageDestinationDir()
self.defines[ "setupname" ] = os.path.join( dstpath, self.defines[ "setupname" ] )
definestring = ""
for key in self.defines:
definestring += " /D" + key + "=\"" + self.defines[ key ] + "\""
EmergeDebug.new_line()
EmergeDebug.debug("generating installer %s" % self.defines["setupname"])
if self.isInstalled:
if not utils.systemWithoutShell( "\"%s\" %s %s" % ( os.path.join(
self.nsisInstallPath, 'makensis.exe' ), definestring,
self.scriptname ), cwd = os.path.abspath( self.packageDir() ) ):
EmergeDebug.die("Error in makensis execution")
示例3: main
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
def main():
""" Testing the class"""
# add two databases
tempdbpath1 = os.path.join( EmergeStandardDirs.emergeRoot(), "tmp", "temp1.db" )
tempdbpath2 = os.path.join( EmergeStandardDirs.emergeRoot(), "tmp", "temp2.db" )
if not os.path.exists( os.path.join( EmergeStandardDirs.emergeRoot(), "tmp" ) ):
os.makedirs( os.path.join( EmergeStandardDirs.emergeRoot(), "tmp" ) )
if os.path.exists( tempdbpath1 ):
os.remove( tempdbpath1 )
if os.path.exists( tempdbpath2 ):
os.remove( tempdbpath2 )
db_temp = InstallDB( tempdbpath1 )
db = InstallDB( tempdbpath2 )
EmergeDebug.debug('testing installation database')
# in case the package is still installed, remove it first silently
if db.isInstalled( 'win32libs', 'dbus-src', '1.4.0' ):
packageList = db.getInstalledPackages( 'win32libs', 'dbus-src' )
# really commit uninstall
for package in packageList:
package.uninstall()
EmergeDebug.debug_line()
EmergeDebug.new_line()
# add a package
EmergeDebug.debug('installing package win32libs/dbus-src-1.4.0 (release)')
package = db.addInstalled( 'win32libs', 'dbus-src', '1.4.0', 'release' )
package.addFiles( dict().fromkeys( [ 'test', 'test1', 'test2' ], 'empty hash' ) )
# now really commit the package
package.install()
# add another package in a different prefix
EmergeDebug.debug('installing package win32libs/dbus-src-1.4.0 (debug)')
package = db.addInstalled( 'win32libs', 'dbus-src', '1.4.0', 'debug' )
package.addFiles( dict().fromkeys( [ 'test', 'test1', 'test2' ], 'empty hash' ) )
# now really commit the package
package.install()
EmergeDebug.debug_line()
EmergeDebug.new_line()
EmergeDebug.debug('checking installed packages')
EmergeDebug.debug('get installed package (release): %s' % db.getInstalled('win32libs', 'dbus-src', 'release'))
EmergeDebug.debug('get installed package (debug): %s' % db.getInstalled('win32libs', 'dbus-src', 'debug'))
EmergeDebug.new_line()
EmergeDebug.debug('now trying to remove package & revert it again later')
# remove the package again
packageList = db.getInstalledPackages( 'win32libs', 'dbus-src' )
for pac in packageList:
for line in pac.getFiles(): # pylint: disable=W0612
# we could remove the file here
# print line
pass
EmergeDebug.debug_line()
EmergeDebug.new_line()
EmergeDebug.debug('checking installed packages')
EmergeDebug.debug('get installed package (release): %s' % db.getInstalled('win32libs', 'dbus-src', 'release'))
EmergeDebug.debug('get installed package (debug): %s' % db.getInstalled('win32libs', 'dbus-src', 'debug'))
EmergeDebug.debug_line()
EmergeDebug.new_line()
EmergeDebug.debug('reverting removal')
# now instead of completing the removal, revert it
for pac in packageList:
pac.revert()
EmergeDebug.debug('checking installed packages')
EmergeDebug.debug('get installed package (release): %s' % db.getInstalled('win32libs', 'dbus-src', 'release'))
EmergeDebug.debug('get installed package (debug): %s' % db.getInstalled('win32libs', 'dbus-src', 'debug'))
EmergeDebug.debug_line()
db.getInstalled()
db.getInstalled( category='win32libs', prefix='debug' )
db.getInstalled( package='dbus-src' )
EmergeDebug.new_line()
EmergeDebug.debug('now really remove the package')
packageList = db.getInstalledPackages( 'win32libs', 'dbus-src' )
for pac in packageList:
EmergeDebug.debug('removing %s files' % len(pac.getFilesWithHashes()))
pac.uninstall()
EmergeDebug.debug('get installed package (release): %s' % db.getInstalled('win32libs', 'dbus-src', 'release'))
EmergeDebug.debug('get installed package (debug): %s' % db.getInstalled('win32libs', 'dbus-src', 'debug'))
EmergeDebug.debug_line()
# test the import from the old style (manifest based) databases
EmergeDebug.new_line()
print("getInstalled:", db_temp.getInstalled())
示例4: handleSinglePackage
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
#.........这里部分代码省略.........
item.target = targetDict[ item.category + "/" + item.package ]
if args.target in list(
portage.PortageInstance.getAllTargets( item.category, item.package ).keys( ) ):
# if no target or a wrong one is defined, simply set the default target here
item.target = args.target
EmergeDebug.debug("dependency: %s" % item, 1)
if not deplist:
EmergeDebug.debug("<none>", 1)
EmergeDebug.debug_line(1)
#for item in deplist:
# cat = item[ 0 ]
# pac = item[ 1 ]
# ver = item[ 2 ]
# if portage.isInstalled( cat, pac, ver, buildType) and updateAll and not portage.isPackageUpdateable( cat, pac, ver ):
# print "remove:", cat, pac, ver
# deplist.remove( item )
if action == "install-deps":
# the first dependency is the package itself - ignore it
# TODO: why are we our own dependency?
del deplist[ 0 ]
elif action == "update-direct-deps":
for item in deplist:
item.enabled = True
deplist.reverse( )
# package[0] -> category
# package[1] -> package
# package[2] -> version
info = deplist[ -1 ]
if not portage.PortageInstance.isVirtualPackage( info.category, info.package ) and \
not action in [ "all", "install-deps" ,"generate-jenkins-job"] and\
not args.list_file or\
action in ["print-targets"]:#not all commands should be executed on the deps if we are a virtual packages
# if a buildAction is given, then do not try to build dependencies
# and do the action although the package might already be installed.
# This is still a bit problematic since packageName might not be a valid
# package
# for list files, we also want to handle fetching & packaging per package
if not handlePackage( info.category, info.package, action, args.doContinue, args.update_fast ):
utils.notify( "Emerge %s failed" % action, "%s of %s/%s failed" % (
action, info.category, info.package), action )
return False
utils.notify( "Emerge %s finished" % action,
"%s of %s/%s finished" % ( action, info.category, info.package),
action )
else:
if args.dumpDepsFile:
dumpDepsFileObject = open( args.dumpDepsFile, 'w+' )
dumpDepsFileObject.write( "# dependency dump of package %s\n" % ( packageName ) )
for info in deplist:
isVCSTarget = False
if args.dumpDepsFile:
dumpDepsFileObject.write( ",".join( [ info.category, info.package, info.target, "" ] ) + "\n" )
isLastPackage = info == deplist[ -1 ]
if args.outDateVCS or (args.outDatePackage and isLastPackage):
isVCSTarget = portage.PortageInstance.getUpdatableVCSTargets( info.category, info.package ) != [ ]
isInstalled = InstallDB.installdb.isInstalled( info.category, info.package )
if args.list_file and action != "all":
info.enabled = info.package in originalPackageList
if ( isInstalled and not info.enabled ) and not (
isInstalled and (args.outDateVCS or (
args.outDatePackage and isLastPackage) ) and isVCSTarget ):
if EmergeDebug.verbose() > 1 and info.package == packageName:
EmergeDebug.warning("already installed %s/%s" % (info.category, info.package))
elif EmergeDebug.verbose() > 2 and not info.package == packageName:
EmergeDebug.warning("already installed %s/%s" % (info.category, info.package))
else:
# in case we only want to see which packages are still to be build, simply return the package name
if args.probe:
if EmergeDebug.verbose() > 0:
EmergeDebug.warning("pretending %s" % info)
else:
if action in [ "install-deps", "update-direct-deps" ]:
action = "all"
if not handlePackage( info.category, info.package, action, args.doContinue, args.update_fast ):
EmergeDebug.error("fatal error: package %s/%s %s failed" % \
( info.category, info.package, action ))
utils.notify( "Emerge build failed",
"Build of %s/%s failed" % ( info.category, info.package),
action )
return False
utils.notify( "Emerge build finished",
"Build of %s/%s finished" % ( info.category, info.package),
action )
EmergeDebug.new_line()
return True
示例5: generateNSISInstaller
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
def generateNSISInstaller( self ):
""" runs makensis to generate the installer itself """
self.isInstalled()
if not self.scriptname:
self.scriptname = os.path.join( os.path.dirname( __file__ ), "NullsoftInstaller.nsi" )
if self.package.endswith( "-package" ):
shortPackage = self.package[ : -8 ]
else:
shortPackage = self.package
if not "setupname" in self.defines or not self.defines[ "setupname" ]:
self.defines[ "setupname" ] = "%s-%s-setup-%s.exe" % ( shortPackage, compiler.architecture(), self.buildTarget )
if not "srcdir" in self.defines or not self.defines[ "srcdir" ]:
self.defines[ "srcdir" ] = self.archiveDir()
if not "company" in self.defines or not self.defines[ "company" ]:
self.defines[ "company" ] = "KDE"
if not "productname" in self.defines or not self.defines[ "productname" ]:
self.defines[ "productname" ] = shortPackage.capitalize()
if not "version" in self.defines or not self.defines[ "version" ]:
self.defines[ "version" ] = self.buildTarget
if not "executable" in self.defines or not self.defines[ "executable" ]:
self.defines[ "executable" ] = ""
if "license" in self.defines and self.defines[ "license" ]:
self.defines[ "license" ] = "!insertmacro MUI_PAGE_LICENSE \"%s\"" % self.defines[ "license" ]
else:
self.defines[ "license" ] = ""
if "icon" in self.defines and self.defines[ "icon" ]:
self.defines[ "icon" ] = "!define MUI_ICON \"%s\"" % self.defines[ "icon" ]
else:
self.defines[ "icon" ] = ""
self.defines[ "architecture" ] = compiler.architecture()
self.defines[ "defaultinstdir" ] = "$PROGRAMFILES64" if compiler.isX64() else "$PROGRAMFILES"
# runtime distributable files
self.defines[ "vcredist" ] = self.getVCRedistLocation(compiler)
if not self.defines[ "vcredist" ]:
self.defines[ "vcredist" ] = "none"
# for earlier versions of MSVC, simply copy the redist files to the "bin" folder of the installation
if compiler.isMSVC():
if compiler.isX64():
redistPath = os.path.join( os.path.join( self.getVCRuntimeLibrariesLocation(), "x64" ) )
else:
redistPath = os.path.join( os.path.join( self.getVCRuntimeLibrariesLocation(), "x86" ) )
for root, subdirs, files in os.walk( redistPath ):
for f in files:
shutil.copy( os.path.join( root, f ), os.path.join( self.archiveDir(), "bin" ) )
elif compiler.isMinGW():
for f in glob.glob( os.path.join( self.rootdir, "mingw", "bin", "*.dll") ):
shutil.copy( f, os.path.join( self.archiveDir(), "bin" ) )
else:
EmergeDebug.die( "Fixme: Copy runtime libraries for this compiler" )
# make absolute path for output file
if not os.path.isabs( self.defines[ "setupname" ] ):
dstpath = self.packageDestinationDir()
self.defines[ "setupname" ] = os.path.join( dstpath, self.defines[ "setupname" ] )
definestring = ""
for key in self.defines:
definestring += " /D" + key + "=\"" + self.defines[ key ] + "\""
EmergeDebug.new_line()
EmergeDebug.debug("generating installer %s" % self.defines["setupname"])
verboseString = "/V4" if EmergeDebug.verbose() > 0 else "/V3"
if self.isInstalled:
makensisExe = os.path.join(self.nsisInstallPath, 'makensis.exe')
if not utils.systemWithoutShell( "\"%s\" %s %s %s" % (makensisExe, verboseString, definestring,
self.scriptname ), cwd = os.path.abspath( self.packageDir() ) ):
EmergeDebug.die("Error in makensis execution")
示例6: generateMSInstaller
# 需要导入模块: import EmergeDebug [as 别名]
# 或者: from EmergeDebug import new_line [as 别名]
def generateMSInstaller( self ):
""" runs tools to generate the installer itself """
if self.package.endswith( "-package" ):
shortPackage = self.package[ : -8 ]
else:
shortPackage = self.package
if not "setupname" in self.defines or not self.defines[ "setupname" ]:
self.defines[ "setupname" ] = "%s-setup-%s.msi" % ( shortPackage, self.buildTarget )
if not "srcdir" in self.defines or not self.defines[ "srcdir" ]:
self.defines[ "srcdir" ] = self.imageDir()
if not "company" in self.defines or not self.defines[ "company" ]:
self.defines[ "company" ] = "KDE"
if not "productname" in self.defines or not self.defines[ "productname" ]:
self.defines[ "productname" ] = "%s %s" % ( shortPackage.capitalize(), self.buildTarget )
if not "executable" in self.defines or not self.defines[ "executable" ]:
self.defines[ "executable" ] = ""
if not "productuid" in self.defines or not self.defines[ "productuid" ]:
m = hashlib.md5()
m.update( self.defines[ "productname" ] )
m.update( self.defines[ "setupname" ] )
self.defines[ "productuid" ] = str( uuid.UUID( hex=m.hexdigest() ) )
print(self.defines[ "productuid" ])
if not "upgradeuid" in self.defines or not self.defines[ "upgradeuid" ]:
self.defines[ "upgradeuid" ] = str( uuid.uuid4() )
if not "componentuid" in self.defines or not self.defines[ "componentuid" ]:
self.defines[ "componentuid" ] = str( uuid.uuid4() )
if not self.scriptname:
self.scriptname = os.path.join( os.path.dirname( __file__ ), "MSInstaller.wxs.template" )
# make absolute path for output file
if not os.path.isabs( self.defines[ "setupname" ] ):
dstpath = self.packageDestinationDir()
self.defines[ "setupname" ] = os.path.join( dstpath, self.defines[ "setupname" ] )
EmergeDebug.new_line()
EmergeDebug.debug("generating installer %s" % self.defines["setupname"])
wxs = Document()
componentRefs = Document()
rootObject = wxs.createElement( "Directory" )
componentRoot = componentRefs.createElement( "Feature" )
objectDict = dict()
objectDict[ self.imageDir() ] = rootObject
rootObject.setAttribute( "Id", self.__getUniqueIdString( self.defines[ "productname" ] ) )
rootObject.setAttribute( "Name", self.defines[ "productname" ] )
componentRoot.setAttribute( "Id", "DefaultFeature" )
componentRoot.setAttribute( "Title", "default feature" )
componentRoot.setAttribute( "Level", "1" )
for root, dirs, files in os.walk(self.imageDir()):
if root == self.imageDir(): continue
if files or dirs:
currentDirectory = wxs.createElement( "Directory" )
currentDirectory.setAttribute( "Id", self.__getUniqueIdString( os.path.basename(root) ) )
currentDirectory.setAttribute( "Name", os.path.basename(root) )
objectDict[ os.path.dirname(root) ].appendChild( currentDirectory )
objectDict[ root ] = currentDirectory
# components could be used to create updateable packages according to current
# emerge packaging
for _f in files:
_fileId = self.__getUniqueIdString( _f )
currentComponent = wxs.createElement( "Component" )
currentComponent.setAttribute( "Id", _fileId )
currentComponent.setAttribute( "Guid", str( uuid.uuid4() ) )
currentDirectory.appendChild( currentComponent )
currentComponentRef = componentRefs.createElement( "ComponentRef" )
currentComponentRef.setAttribute( "Id", _fileId )
componentRoot.appendChild( currentComponentRef )
currentFile = wxs.createElement( "File" )
currentFile.setAttribute( "Id", _fileId )
currentFile.setAttribute( "Source", os.path.join( "SourceDir", os.path.relpath( root, self.imageDir() ), _f ) )
currentComponent.appendChild( currentFile )
if self.scriptname.endswith( ".template" ): outName = os.path.join( self.buildDir(), os.path.basename( self.scriptname )[:-9] )
else: outName = os.path.join( self.buildDir(), self.scriptname )
out = open( outName, 'w' )
filelistString = StringIO()
componentlistString = StringIO()
rootObject.writexml( filelistString, " "*16, " ", "\n" )
componentRoot.writexml( componentlistString, " "*8, " ", "\n" )
self.defines[ "filelist" ] = filelistString.getvalue()
self.defines[ "componentlist" ] = componentlistString.getvalue()
filelistString.close()
componentlistString.close()
templateFile = open( self.scriptname, 'r' )
scriptTemplate = Template( templateFile.read() )
substitutedScript = scriptTemplate.safe_substitute( self.defines )
out.write( substitutedScript )
#.........这里部分代码省略.........