summaryrefslogtreecommitdiff
path: root/buildscripts/msitrim.py
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2014-09-16 13:37:36 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2014-10-16 10:26:36 -0400
commite462f31e016212183da68f444e6db1c8474742c4 (patch)
treefaa70093a4698fb2779447c396f75ce4652213c2 /buildscripts/msitrim.py
parentcacbfa2f82ee3ffe5513e727542d513d3f98ac1c (diff)
downloadmongo-e462f31e016212183da68f444e6db1c8474742c4.tar.gz
SERVER-14266: Simplify MSI Installation Options
Diffstat (limited to 'buildscripts/msitrim.py')
-rw-r--r--buildscripts/msitrim.py43
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);