Index: remoting/dark_and_candle_and_light.py |
diff --git a/remoting/dark_and_candle_and_light.py b/remoting/dark_and_candle_and_light.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..47c2a09967673807093d3663e2fab81297aa07ea |
--- /dev/null |
+++ b/remoting/dark_and_candle_and_light.py |
@@ -0,0 +1,67 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Run 'dark', 'candle', and 'light', to confirm that an msi can be unpacked |
+repacked successfully.""" |
+ |
+from optparse import OptionParser |
+import os |
+import subprocess |
+import sys |
+ |
+def run(command, filter=None): |
+ popen = subprocess.Popen( |
+ command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
+ out, _ = popen.communicate() |
+ for line in out.splitlines(): |
+ if filter and line.strip() != filter: |
+ print line |
+ return popen.returncode |
+ |
+def main(): |
+ parser = OptionParser() |
+ parser.add_option('--wix_path', dest='wix_path') |
+ parser.add_option('--input', dest='input') |
+ parser.add_option('--intermediate_dir', dest='intermediate_dir') |
+ parser.add_option('--output', dest='output') |
+ options, args = parser.parse_args() |
+ if args: |
+ parser.error("no positional arguments expected") |
+ parameters = dict(options.__dict__) |
+ |
+ parameters['basename'] = os.path.splitext(os.path.basename(options.output))[0] |
+ |
+ dark_template = ('%(wix_path)s\\dark ' + |
+ '-nologo ' + |
+ '%(input)s ' + |
+ '-o %(intermediate_dir)s/%(basename)s.wxs ' + |
+ '-x %(intermediate_dir)s') |
+ rc = run(dark_template % parameters) |
+ if rc: |
+ return rc |
+ |
+ candle_template = ('%(wix_path)s\\candle ' + |
+ '-nologo ' + |
+ '%(intermediate_dir)s/%(basename)s.wxs ' + |
+ '-o %(intermediate_dir)s/%(basename)s.wixobj ' + |
+ '-ext %(wix_path)s\\WixFirewallExtension.dll') |
+ rc = run(candle_template % parameters, parameters['basename'] + '.wxs') |
+ if rc: |
+ return rc |
+ |
+ light_template = ('%(wix_path)s\\light ' + |
+ '-nologo ' + |
+ '%(intermediate_dir)s/%(basename)s.wixobj ' + |
+ '-o %(output)s ' + |
+ '-ext %(wix_path)s\\WixFirewallExtension.dll ' + |
+ '-sw1076 ') |
+ rc = run(light_template % parameters) |
+ if rc: |
+ return rc |
+ |
+ return 0 |
+ |
+if __name__ == "__main__": |
+ sys.exit(main()) |