> Samuli Seppänen wrote: > >> here's the next version of the patch; >> > > Functionally fine! > > > >> def main(config): >> + >> + # Do a signed build by default >> + unsignedBuild=False >> > > Maybe name the option signedBuild instead? :) > > > >> + # Check if the SignTool module is present. This avoids ImportErrors >> popping >> + # up annoyingly _after_ the build. >> + if unsignedBuild == False: >> + try: >> + from signtool import SignTool >> + except (ImportError): >> + print "ERROR: SignTool python module not found! Can't do a signed >> build." >> + sys.exit(1) >> + >> + if unsignedBuild == True: >> + print "Doing an unsigned build as requested" >> > > I guess the pythonic way would be simply: > > if signedBuild: > try import.. > else: > print as requested.. > > > >> - sign(config, 'all') >> + >> + if unsignedBuild == False: >> + sign(config, 'all') >> + >> > > signedBuild would be nicer, then simply: > > if signedBuild: > sign() > > > //Peter >
All fixes applied in this patch. -- Samuli Seppänen Community Manager OpenVPN Technologies, Inc irc freenode net: mattock
From 804aa21a12f74de4142305ed415b33a43e5fc276 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Samuli=20Sepp=C3=A4nen?= <sam...@openvpn.net> Date: Thu, 18 Nov 2010 18:00:54 +0200 Subject: [PATCH] Added command-line option parser and an unsigned build option to build_all.py Modified win/build_all.py so that it parses command-line options using getopt. Added option "-u / --unsigned" which allows forcing unsigned builds and a "-h / --help" option. By default a signed build is generated, provided that the Python SignTool module is installed. If not, the build is interrupted. --- win/build_all.py | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 43 insertions(+), 2 deletions(-) diff --git a/win/build_all.py b/win/build_all.py index 92d2bf4..5637b55 100644 --- a/win/build_all.py +++ b/win/build_all.py @@ -1,15 +1,56 @@ +import getopt, sys from config_all import main as config_all from build import main as build_openvpn from build_ddk import main as build_ddk -from sign import main as sign from make_dist import main as make_dist +def Usage(): + '''Show usage information''' + print "Usage: build_all.py [OPTIONS]..." + print "Build OpenVPN using Visual Studio tools" + print + print " -h, --help Show this help" + print " -u, --unsigned Do not sign the TAP drivers" + sys.exit(1) + def main(config): + + # Do a signed build by default + signedBuild=True + + # Parse the command line argument(s) + try: + opts, args = getopt.getopt(sys.argv[1:], "hu", ["help", "unsigned"]) + except getopt.GetoptError: + Usage() + + for o, a in opts: + if o in ("-h","--help"): + Usage() + if o in ("-u", "--unsigned"): + signedBuild=False + + + # Check if the SignTool module is present. This avoids ImportErrors popping + # up annoyingly _after_ the build. + if signedBuild: + try: + from signtool import SignTool + except (ImportError): + print "ERROR: SignTool python module not found! Can't do a signed build." + sys.exit(1) + else: + print "Doing an unsigned build as requested" + + # Start the build config_all(config) build_openvpn() build_ddk(config, 'tap', 'all') build_ddk(config, 'tapinstall', 'all') - sign(config, 'all') + + if signedBuild: + sign(config, 'all') + make_dist(config) # if we are run directly, and not loaded as a module -- 1.6.3.3