import os import shutil sp = os.path.dirname(os.path.realpath(__file__)) p = os.path.join regRep = "HKEY_LOCAL_MACHINE\\OPUS-NT_TMP" def walklevel(some_dir, level=0): some_dir = some_dir.rstrip(os.path.sep) assert os.path.isdir(some_dir) num_sep = some_dir.count(os.path.sep) for root, dirs, files in os.walk(some_dir): yield root, dirs, files num_sep_this = root.count(os.path.sep) if num_sep + level <= num_sep_this: del dirs[:] def convertFolder(dirIn): # loop: tweaks for tweakRoot,tweaks,_ in walklevel(dirIn): for tweak in tweaks: fullTweak = p(tweakRoot,tweak) # loop: tweak types for tweakTypeRoot,tweakTypes,_ in walklevel(fullTweak): for tweakType in tweakTypes: fullTweakType = p(tweakTypeRoot,tweakType) # reg files if tweakType.lower() == "reg": for regTypeRoot,regTypes,_ in walklevel(fullTweakType): for regType in regTypes: fullRegType = p(regTypeRoot,regType) for regRoot,_,regFiles in walklevel(fullRegType): for regFile in regFiles: fullReg = p(regRoot,regFile) fullRegOut = fullReg.replace(dirIn,dirIn + " - converted") fullRegOutDir = os.path.dirname(fullRegOut) if not os.path.isdir(fullRegOutDir): os.makedirs(fullRegOutDir) regFh = open(fullReg,"r") regText = regFh.read() regFh.close() replaceWith = regRep if regType.lower() == "software": replaceWith = "HKEY_LOCAL_MACHINE\\SOFTWARE" if regType.lower() == "system": replaceWith = "HKEY_LOCAL_MACHINE\\SYSTEM" if regType.lower() == "ntuser": regFhOut = open(fullRegOut+ ".defaultUser" + ".reg","w",encoding="utf-8") regFhOut.write(regText.replace(regRep,"HKEY_USERS\\.DEFAULT")) regFhOut.close() replaceWith = "HKEY_CURRENT_USER" regTextOld = regText regText = regText.replace(regRep,replaceWith) if regText == regTextOld: print("warning, " +tweak+ "/" +regType+ "/" +regFile+ ": not modified") regFhOut = open(fullRegOut,"w",encoding="utf-8") regFhOut.write(regText) regFhOut.close() if tweakType.lower() == "wim": shutil.copytree(fullTweakType,fullTweakType.replace(dirIn,dirIn + " - converted")) convertFolder(p(sp,"tweaks")) convertFolder(p(sp,"tweaksReversal"))