84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
import distutils, distutils.util
|
|
import msilib
|
|
import pathlib
|
|
|
|
import lokrez, lokrez.version
|
|
|
|
# -----------------------------------------------------------------------------
|
|
arch = distutils.util.get_platform().split("-")[-1]
|
|
|
|
msi_filepath = pathlib.Path(
|
|
"dist",
|
|
"{}-{}-{}.msi" \
|
|
.format(
|
|
lokrez.version.NAME,
|
|
lokrez.version.__version__.replace("dev", "1337"),
|
|
arch,
|
|
),
|
|
)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Modifications to allow for a non-admin-required msi
|
|
print("modifying final msi '{}' for standard user installation" \
|
|
.format(msi_filepath))
|
|
if not msi_filepath.exists():
|
|
print("msi file does not exist")
|
|
else:
|
|
try:
|
|
db = msilib.OpenDatabase(
|
|
str(msi_filepath),
|
|
msilib.MSIDBOPEN_TRANSACT,
|
|
)
|
|
|
|
si = db.GetSummaryInformation(20)
|
|
cur_wc = si.GetProperty(msilib.PID_WORDCOUNT)
|
|
si.SetProperty(
|
|
msilib.PID_WORDCOUNT,
|
|
cur_wc | 0b1000,
|
|
)
|
|
si.SetProperty(
|
|
msilib.PID_AUTHOR,
|
|
"{} - {}" \
|
|
.format(
|
|
lokrez.version.ENTITY,
|
|
lokrez.version.AUTHOR,
|
|
),
|
|
)
|
|
si.Persist()
|
|
|
|
# Install for the current user only
|
|
vi = db.OpenView(
|
|
"DELETE FROM `Property` WHERE `Property`.`Property` = 'ALLUSERS'"
|
|
)
|
|
vi.Execute(None)
|
|
vi.Close()
|
|
|
|
# Add the manufacturer name
|
|
vi = db.OpenView(
|
|
"UPDATE `Property` SET `Property`.`Value`='{} - {}' WHERE " \
|
|
"`Property`.`Property` = 'Manufacturer'" \
|
|
.format(
|
|
lokrez.version.ENTITY,
|
|
lokrez.version.AUTHOR,
|
|
),
|
|
)
|
|
vi.Execute(None)
|
|
vi.Close()
|
|
|
|
# Update Path env variable for the user only
|
|
vi = db.OpenView(
|
|
"UPDATE `Environment` SET `Environment`.`Name`='=-Path' " \
|
|
"WHERE `Environment`.`Environment` = 'E_PATH'",
|
|
)
|
|
vi.Execute(None)
|
|
vi.Close()
|
|
|
|
db.Commit()
|
|
db.Close()
|
|
|
|
except Exception as e:
|
|
print("fail")
|
|
print(str(e))
|
|
print(e.args)
|
|
raise
|