diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2014-09-16 13:37:36 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2014-10-16 10:26:36 -0400 |
commit | e462f31e016212183da68f444e6db1c8474742c4 (patch) | |
tree | faa70093a4698fb2779447c396f75ce4652213c2 /buildscripts/msitrim.py | |
parent | cacbfa2f82ee3ffe5513e727542d513d3f98ac1c (diff) | |
download | mongo-e462f31e016212183da68f444e6db1c8474742c4.tar.gz |
SERVER-14266: Simplify MSI Installation Options
Diffstat (limited to 'buildscripts/msitrim.py')
-rw-r--r-- | buildscripts/msitrim.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/buildscripts/msitrim.py b/buildscripts/msitrim.py new file mode 100644 index 00000000000..7e267375229 --- /dev/null +++ b/buildscripts/msitrim.py @@ -0,0 +1,43 @@ +"""Script to fix up our MSI files """ + +import argparse; +import msilib +import shutil; + +parser = argparse.ArgumentParser(description='Trim MSI.') +parser.add_argument('file', type=argparse.FileType('r'), help='file to trim') +parser.add_argument('out', type=argparse.FileType('w'), help='file to output to') + +args = parser.parse_args() + +def exec_delete(query): + view = db.OpenView(query) + view.Execute(None) + + cur_record = view.Fetch() + view.Modify(msilib.MSIMODIFY_DELETE, cur_record) + view.Close() + + +def exec_update(query, column, value): + view = db.OpenView(query) + view.Execute(None) + + cur_record = view.Fetch() + cur_record.SetString(column, value) + view.Modify(msilib.MSIMODIFY_REPLACE, cur_record) + view.Close() + + +print "Trimming MSI" + +db = msilib.OpenDatabase(args.file.name, msilib.MSIDBOPEN_DIRECT) + +exec_delete("select * from ControlEvent WHERE Dialog_ = 'LicenseAgreementDlg' AND Control_ = 'Next' AND Event = 'NewDialog' AND Argument = 'CustomizeDlg'") +exec_delete("select * from ControlEvent WHERE Dialog_ = 'CustomizeDlg' AND Control_ = 'Back' AND Event = 'NewDialog' AND Argument = 'LicenseAgreementDlg'") + +exec_update("select * from ControlEvent WHERE Dialog_ = 'VerifyReadyDlg' AND Control_ = 'Back' AND Event = 'NewDialog' AND Argument = 'CustomizeDlg'", 5, "WixUI_InstallMode = \"InstallCustom\"") + +db.Commit() + +shutil.copyfile(args.file.name, args.out.name); |