opus-nt/scripts/main.py
2019-12-27 05:39:12 +01:00

93 lines
2.6 KiB
Python

import sys
import os
import shutil
import time
pJoin = os.path.join
opus.time = int(time.time())
opus.version = Munch()
opus.version.distro = "opus-nt"
opus.version.major = 0
opus.version.median = 2
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-" +str(opus.time))
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(pJoin(opus.path.temp,"wim"))
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()