diff options
Diffstat (limited to 'engine/SCons/Tool/packaging/msi.py')
| -rw-r--r-- | engine/SCons/Tool/packaging/msi.py | 36 | 
1 files changed, 18 insertions, 18 deletions
diff --git a/engine/SCons/Tool/packaging/msi.py b/engine/SCons/Tool/packaging/msi.py index 3f67d63..1038a95 100644 --- a/engine/SCons/Tool/packaging/msi.py +++ b/engine/SCons/Tool/packaging/msi.py @@ -4,7 +4,7 @@ The msi packager.  """  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #   # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -25,7 +25,7 @@ The msi packager.  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -__revision__ = "src/engine/SCons/Tool/packaging/msi.py 74b2c53bc42290e911b334a6b44f187da698a668 2017/11/14 13:16:53 bdbaddog" +__revision__ = "src/engine/SCons/Tool/packaging/msi.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan"  import os  import SCons @@ -63,8 +63,8 @@ def convert_to_id(s, id_set):      """      charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyz0123456789_.'      if s[0] in '0123456789.': -        s += '_'+s -    id = [c for c in s if c in charset] +        s = '_' + s +    id = ''.join([c for c in s if c in charset])      # did we already generate an id for this file?      try: @@ -108,14 +108,13 @@ def gen_dos_short_file_name(file, filename_set):      # strip forbidden characters.      forbidden = '."/[]:;=, ' -    fname = [c for c in fname if c not in forbidden] +    fname = ''.join([c for c in fname if c not in forbidden])      # check if we already generated a filename with the same number:      # thisis1.txt, thisis2.txt etc.      duplicate, num = not None, 1      while duplicate: -        shortname = "%s%s" % (fname[:8-len(str(num))].upper(),\ -                              str(num)) +        shortname = "%s%s" % (fname[:8-len(str(num))].upper(), str(num))          if len(ext) >= 2:              shortname = "%s%s" % (shortname, ext[:4].upper()) @@ -189,7 +188,7 @@ def build_wxsfile(target, source, env):      """ Compiles a .wxs file from the keywords given in env['msi_spec'] and          by analyzing the tree of source nodes and their tags.      """ -    file = open(target[0].get_abspath(), 'w') +    f = open(target[0].get_abspath(), 'w')      try:          # Create a document with the Wix root tag @@ -210,7 +209,7 @@ def build_wxsfile(target, source, env):          build_license_file(target[0].get_dir(), env)          # write the xml to a file -        file.write( doc.toprettyxml() ) +        f.write( doc.toprettyxml() )          # call a user specified function          if 'CHANGE_SPECFILE' in env: @@ -218,6 +217,8 @@ def build_wxsfile(target, source, env):      except KeyError as e:          raise SCons.Errors.UserError( '"%s" package field for MSI is missing.' % e.args[0] ) +    finally: +        f.close()  #  # setup function @@ -301,7 +302,7 @@ def build_wxsfile_file_section(root, files, NAME, VERSION, VENDOR, filename_set,                                 if c.nodeName == 'Directory'                                 and c.attributes['LongName'].value == escape(d)]  -            if already_created != []: +            if already_created:                  Directory = already_created[0]                  dir_parts.remove(d)                  upper_dir += d @@ -441,14 +442,13 @@ def build_license_file(directory, spec):          pass # ignore this as X_MSI_LICENSE_TEXT is optional      if name!='' or text!='': -        file = open( os.path.join(directory.get_path(), 'License.rtf'), 'w' ) -        file.write('{\\rtf') -        if text!='': -             file.write(text.replace('\n', '\\par ')) -        else: -             file.write(name+'\\par\\par') -        file.write('}') -        file.close() +        with open(os.path.join(directory.get_path(), 'License.rtf'), 'w') as f: +            f.write('{\\rtf') +            if text!='': +                 f.write(text.replace('\n', '\\par ')) +            else: +                 f.write(name+'\\par\\par') +            f.write('}')  #  # mandatory and optional package tags  | 
