> 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

Reply via email to