68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
|
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"))
|