import sys import os import shutil pJoin = os.path.join opus.version = Munch() opus.version.distro = "opus-nt" opus.version.major = 0 opus.version.median = 0 opus.version.minor = 0 opus.version.state = "dev" opus.version.string = \ opus.version.distro + " " +\ str(opus.version.major) + "." +\ str(opus.version.median) + "." +\ str(opus.version.minor) + " " +\ opus.version.state opus.path = Munch() opus.path.main = os.path.dirname(os.path.realpath(__file__)) opus.path.api = pJoin(opus.path.main,"scripts","api") opus.path.tweaks = pJoin(opus.path.main,"tweaks") opus.path.temp = pJoin(opus.path.main,"tmp") opus.path.wim = pJoin(opus.path.temp,"wim") opus.path.target = os.path.realpath(sys.argv[1]) opus.verbosity = 2 with open(pJoin(opus.path.main,"scripts","api","main.py")) as script: exec(script.read()) opus.main.output("\nmain-api loaded!",1) opus.script.execute(pJoin(opus.path.main,"scripts","hello.py")) opus.main.output("",1) if opus.verbosity > 0: opus.main.output("-- paths --") for path in opus.path: opus.main.output(path + ": " +opus.path[path]) opus.main.output("") opus.main.output("-- loading misc APIs --", 1) opus.script.execute(pJoin(opus.path.api,"path.py")) opus.script.execute(pJoin(opus.path.api,"wim.py")) opus.script.execute(pJoin(opus.path.api,"registry.py")) opus.script.execute(pJoin(opus.path.api,"detection.py")) opus.script.execute(pJoin(opus.path.api,"tweak.py")) opus.main.output("",1) opus.script.execute(pJoin(opus.path.main,"scripts","path.py")) opus.main.output("",1) if os.path.isdir(opus.path.temp): opus.main.output("clearing temp directory...",1) try: opus.reg.unmount() except: pass shutil.rmtree(opus.path.temp) os.makedirs(opus.path.temp) opus.wim.location = pJoin(opus.path.target,"sources","install.wim") opus.wim.index = int(input("\nwim index: ")) opus.main.output("",1) opus.wim.extractFiles([ pJoin("Windows","System32","config","SOFTWARE"), pJoin("Windows","System32","config","SYSTEM"), pJoin("Users","Default","NTUSER.DAT") ]) opus.main.output("",1) opus.os = opus.detect.os(opus.wim.path()) for tag in opus.os.tags: if not os.path.isdir(pJoin(opus.path.tweaks,tag)): continue opus.tweak.apply.reg(tag,"SOFTWARE",pJoin("Windows","System32","config","SOFTWARE")) opus.tweak.apply.reg(tag,"SYSTEM",pJoin("Windows","System32","config","SYSTEM")) opus.tweak.apply.reg(tag,"NTUSER",pJoin("Users","Default","NTUSER.DAT")) opus.tweak.apply.wim(tag) opus.tweak.apply.iso(tag) opus.main.output("\nif you'd like to make manual changes, please do so now. press enter to finalize or ctrl+c to cancel.") input() opus.wim.update()