def CopyFirmware(cls): """Copies the firmware files/directories if necessary.""" if Firmware.IsEnabled(): Tools.Info("Copying firmware...") if os.path.isdir(var.firmwareDirectory): if Firmware.IsCopyAllEnabled(): Tools.CopyTree( var.firmwareDirectory, var.temp + var.firmwareDirectory ) else: # Copy the firmware files if Firmware.GetFiles(): try: for fw in Firmware.GetFiles(): Tools.Into(fw, directoryPrefix=var.firmwareDirectory) except FileNotFoundError: Tools.Warn( "An error occurred while copying the following firmware file: {}".format( fw ) ) # Copy the firmware directories if Firmware.GetDirectories(): try: for fw in Firmware.GetDirectories(): sourceFirmwareDirectory = os.path.join( var.firmwareDirectory, fw ) targetFirmwareDirectory = ( var.temp + sourceFirmwareDirectory ) Tools.CopyTree( sourceFirmwareDirectory, targetFirmwareDirectory ) except FileNotFoundError: Tools.Warn( "An error occurred while copying the following directory: {}".format( fw ) ) else: Tools.Fail( "The {} directory does not exist".format(var.firmwareDirectory) )
def _CopyUdevAndDeleteFiles(cls, udevDirectory, udevExcludedFiles): """Helper function to copy udev directory and delete excluded files.""" tempUdevDirectory = var.temp + udevDirectory if os.path.isdir(udevDirectory): Tools.CopyTree(udevDirectory, tempUdevDirectory) if udevExcludedFiles: for udevFile in udevExcludedFiles: fileToRemove = tempUdevDirectory + "/" + udevFile if os.path.exists(fileToRemove): os.remove(fileToRemove)
def LastSteps(cls): """Performes any last minute steps like copying zfs.conf, giving init execute permissions, setting up symlinks, etc. """ Tools.Info("Performing finishing steps ...") # Create mtab file call(["touch", var.temp + "/etc/mtab"]) if not os.path.isfile(var.temp + "/etc/mtab"): Tools.Fail("Error creating the mtab file. Exiting.") cls.CreateLibraryLinks() # Copy the init script Tools.SafeCopy(var.filesDirectory + "/init", var.temp) # Give execute permissions to the script cr = call(["chmod", "u+x", var.temp + "/init"]) if cr != 0: Tools.Fail("Failed to give executive privileges to " + var.temp + "/init") # Sets initramfs script version number cmd = f"echo {var.version} > {var.temp}/version.bliss" call(cmd, shell=True) # Copy all of the modprobe configurations if os.path.isdir(var.modprobeDirectory): Tools.CopyTree(var.modprobeDirectory, var.temp + var.modprobeDirectory) cls.CopyUdevAndSupportFiles() cls.DumpSystemKeymap() # Any last substitutions or additions/modifications should be done here # Add any modules needed into the initramfs requiredModules = ",".join(Modules.GetFiles()) cmd = f"echo {requiredModules} > {var.temp}/modules.bliss" call(cmd, shell=True) cls.CopyLibGccLibrary()