Changeset 914ba0a in sasview for sasview/installer_generator.py


Ignore:
Timestamp:
May 2, 2017 3:58:01 PM (7 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
d66dbcc
Parents:
74d9780 (diff), 658dd57 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge with master

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasview/installer_generator.py

    r899e084 r914ba0a  
    44exists in the current directory. Edit local_config.py according to your needs. 
    55""" 
     6from __future__ import print_function 
     7 
     8import local_config 
    69import os 
    7 import sys 
    810import string 
    911 
     
    1719AppVerName = str(local_config.__appname__ )+'-'+ str(local_config.__version__) 
    1820Dev = '' 
    19 if 'dev' in AppVerName.lower(): 
     21if AppVerName.lower().count('dev') > 0: 
    2022    Dev = '-Dev' 
    2123AppPublisher = local_config._copyright 
     
    2426AppUpdatesURL = local_config._homepage 
    2527ChangesEnvironment = 'true' 
    26 DefaultDirName = os.path.join("{pf}" , AppName+Dev)  
     28DefaultDirName = os.path.join("{pf}" , AppName+Dev) 
    2729DefaultGroupName = os.path.join(local_config.DefaultGroupName, AppVerName) 
    28                                  
     30 
    2931OutputBaseFilename = local_config.OutputBaseFilename 
    30 SetupIconFile = local_config.SetupIconFile_win 
     32SetupIconFile = "images\\ball.ico" 
    3133LicenseFile = 'license.txt' 
    3234DisableProgramGroupPage = 'yes' 
     
    4749    list_app =[] 
    4850    try: 
    49          
     51 
    5052        #(ext, type, name, flags) 
    5153        from sas.sascalc.dataloader.loader import Loader 
     
    6870            file_type, ext = string.split(item, "|*", 1) 
    6971            if ext.strip() not in ['.', ''] and ext.strip() not in list_app: 
    70                 list_app.append((ext, 'string', file_type))  
     72                list_app.append((ext, 'string', file_type)) 
    7173    except: 
    7274        pass 
     
    9294                              %  str(APPLICATION) 
    9395        msg += """ValueType: %s; """ % str('string') 
    94         msg += """ValueName: "%s";\t""" %str('')  
     96        msg += """ValueName: "%s";\t""" %str('') 
    9597        msg += """ValueData: \"""{app}\%s""  ""%s1\"""; \t"""% (str(APPLICATION), 
    96                                                           str('%'))     
     98                                                          str('%')) 
    9799        msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 
    98100        msg += "\n" 
    99         user_list = "Software\Classes"  
     101        user_list = "Software\Classes" 
    100102        for (ext, type, _) in data_extension: 
    101103            list = os.path.join(user_list, ext, openwithlist) 
     
    108110                              %  (str(user_list), str(APPLICATION)) 
    109111        msg += """ValueType: %s; """ % str('string') 
    110         msg += """ValueName: "%s";\t""" %str('')  
     112        msg += """ValueName: "%s";\t""" %str('') 
    111113        msg += """ValueData: \"""{app}\%s""  ""%s1\"""; \t"""% (str(APPLICATION), 
    112                                                           str('%'))     
     114                                                          str('%')) 
    113115        msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 
    114         msg += "\n"         
     116        msg += "\n" 
    115117    if app_extension is not None and app_extension: 
    116118        for (ext, type, _) in app_extension: 
    117119            msg +=  """Root: HKCR;\tSubkey: "%s";\t""" % str(ext) 
    118120            msg += """ValueType: %s;\t""" % str(type) 
    119             #file type empty set the current application as the default  
     121            #file type empty set the current application as the default 
    120122            #reader for this file. change the value of file_type to another 
    121123            #string modify the default reader 
     
    127129    msg += """Root: HKCR; Subkey: "{app}\%s";\t""" % str(APPLICATION) 
    128130    msg += """ValueType: %s; """ % str('string') 
    129     msg += """ValueName: "%s";\t""" % str('')  
    130     msg += """ValueData: "{app}\%s";\t""" % str("SasView File")  
     131    msg += """ValueName: "%s";\t""" % str('') 
     132    msg += """ValueData: "{app}\%s";\t""" % str("SasView File") 
    131133    msg += """ Flags: %s \t""" % str("uninsdeletekey  noerror") 
    132134    msg += "\n" 
    133          
     135 
    134136    #execute the file on double-click 
    135137    msg += """Root: HKCR; Subkey: "{app}\%s\shell\open\command";\t"""  %  str(APPLICATION) 
    136138    msg += """ValueType: %s; """ % str('string') 
    137     msg += """ValueName: "%s";\t""" %str('')  
     139    msg += """ValueName: "%s";\t""" %str('') 
    138140    msg += """ValueData: \"""{app}\%s""  ""%s1\""";\t"""% (str(APPLICATION), 
    139                                                           str('%'))   
     141                                                          str('%')) 
    140142    msg += """ Flags: %s \t""" % str("uninsdeletevalue noerror") 
    141     msg += "\n"                                                       
     143    msg += "\n" 
    142144    #create default icon 
    143145    msg += """Root: HKCR; Subkey: "{app}\%s";\t""" % str(SetupIconFile) 
    144146    msg += """ValueType: %s; """ % str('string') 
    145     msg += """ValueName: "%s";\t""" % str('')  
     147    msg += """ValueName: "%s";\t""" % str('') 
    146148    msg += """ValueData: "{app}\%s,0";\t""" % str(APPLICATION) 
    147149    msg += """ Flags: %s \t""" % str("uninsdeletevalue noerror") 
    148     msg += "\n"   
    149  
    150      
     150    msg += "\n" 
     151 
     152 
    151153    #SASVIEWPATH 
    152154    msg += """Root: HKLM; Subkey: "%s";\t"""  %  str('SYSTEM\CurrentControlSet\Control\Session Manager\Environment') 
    153155    msg += """ValueType: %s; """ % str('expandsz') 
    154     msg += """ValueName: "%s";\t""" % str('SASVIEWPATH')  
     156    msg += """ValueName: "%s";\t""" % str('SASVIEWPATH') 
    155157    msg += """ValueData: "{app}";\t""" 
    156158    msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 
    157159    msg += "\n" 
    158      
     160 
    159161    #PATH 
    160162    msg += """; Write to PATH (below) is disabled; need more tests\n""" 
    161163    msg += """;Root: HKCU; Subkey: "%s";\t"""  %  str('Environment') 
    162164    msg += """ValueType: %s; """ % str('expandsz') 
    163     msg += """ValueName: "%s";\t""" % str('PATH')  
     165    msg += """ValueName: "%s";\t""" % str('PATH') 
    164166    msg += """ValueData: "%s;{olddata}";\t""" % str('%SASVIEWPATH%') 
    165167    msg += """ Check: %s""" % str('NeedsAddPath()') 
    166168    msg += "\n" 
    167          
    168     return msg 
    169  
    170 def write_language(language=['english'], msfile="compiler:Default.isl"):   
     169 
     170    return msg 
     171 
     172def write_language(language=['english'], msfile="compiler:Default.isl"): 
    171173    """ 
    172174    define the language of the application 
    173     """  
     175    """ 
    174176    msg = '' 
    175177    if language: 
    176178        msg = "\n\n[Languages]\n" 
    177179        for lang in language: 
    178             msg += """Name: "%s";\tMessagesFile: "%s"\n""" % (str(lang),  
     180            msg += """Name: "%s";\tMessagesFile: "%s"\n""" % (str(lang), 
    179181                                                           str(msfile)) 
    180     return msg  
     182    return msg 
    181183 
    182184def write_tasks(): 
     
    202204    msg += """Flags: ignoreversion recursesubdirs createallsubdirs\n""" 
    203205    msg += """Source: "dist\plugin_models\*";\tDestDir: "{userdesktop}\..\.sasview\plugin_models";\t""" 
    204     msg += """Flags: recursesubdirs createallsubdirs\n"""  
     206    msg += """Flags: recursesubdirs createallsubdirs\n""" 
    205207    msg += """Source: "dist\compiled_models\*";\tDestDir: "{userdesktop}\..\.sasmodels\compiled_models";\t""" 
    206208    msg += """Flags: recursesubdirs createallsubdirs\n""" 
    207     msg += """Source: "dist\config\custom_config.py";\tDestDir: "{userdesktop}\..\.sasview\config";\t"""  
     209    msg += """Source: "dist\config\custom_config.py";\tDestDir: "{userdesktop}\..\.sasview\config";\t""" 
    208210    msg += """Flags: recursesubdirs createallsubdirs\n""" 
    209     msg += """Source: "dist\default_categories.json";    DestDir: "{userdesktop}\..\.sasview";\t"""  
    210     msg += """DestName: "categories.json";\n""" 
     211    #msg += """Source: "dist\default_categories.json";    DestDir: "{userdesktop}\..\.sasview";\t""" 
     212    #msg += """DestName: "categories.json";\n""" 
    211213    msg += """;\tNOTE: Don't use "Flags: ignoreversion" on any shared system files""" 
    212214    return msg 
     
    236238    msg = """\n\n[Run]\n""" 
    237239    msg += """Filename: "{app}\%s";\t""" % str(APPLICATION) 
    238     msg += """Description: "{cm:LaunchProgram, %s}";\t""" %str(AppName)  
     240    msg += """Description: "{cm:LaunchProgram, %s}";\t""" %str(AppName) 
    239241    msg += """Flags: nowait postinstall skipifsilent\n""" 
    240242    msg += """; Install the Microsoft C++ DLL redistributable package if it is """ 
     
    261263    msg = """\n\n[Dirs]\n""" 
    262264    msg += """Name: "{app}\%s";\t""" % str('') 
    263     msg += """Permissions: everyone-modify\t"""  
    264     msg += """\n"""   
     265    msg += """Permissions: everyone-modify\t""" 
     266    msg += """\n""" 
    265267    return msg 
    266268 
    267269def write_code(): 
    268270    """ 
    269     Code that checks the existing path and snaviewpath  
     271    Code that checks the existing path and snaviewpath 
    270272    in the environmental viriables/PATH 
    271273    """ 
    272274    msg = """\n\n[Code]\n""" 
    273     msg += """function InstallVC90CRT(): Boolean;\n"""  
     275    msg += """function InstallVC90CRT(): Boolean;\n""" 
    274276    msg += """begin\n""" 
    275277    msg += """    Result := not DirExists('C:\WINDOWS\WinSxS\\x86_Microsoft.VC90.""" 
    276278    msg += """CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375');\n""" 
    277279    msg += """end;\n\n""" 
    278     msg += """function NeedsAddPath(): boolean;\n"""  
    279     msg += """var\n"""  
     280    msg += """function NeedsAddPath(): boolean;\n""" 
     281    msg += """var\n""" 
    280282    msg += """  oldpath: string;\n""" 
    281     msg += """  newpath: string;\n"""  
    282     msg += """  pathArr:    TArrayOfString;\n"""  
    283     msg += """  i:        Integer;\n"""  
    284     msg += """begin\n"""  
     283    msg += """  newpath: string;\n""" 
     284    msg += """  pathArr:    TArrayOfString;\n""" 
     285    msg += """  i:        Integer;\n""" 
     286    msg += """begin\n""" 
    285287    msg += """  RegQueryStringValue(HKEY_CURRENT_USER,'Environment',""" 
    286288    msg += """'PATH', oldpath)\n""" 
     
    325327    msg += """; installation.\n""" 
    326328    msg += """Type: dirifempty; Name: "{app}"\n""" 
    327     msg += """\n"""   
     329    msg += """\n""" 
    328330    return msg 
    329331 
     
    334336    TEMPLATE += "\n; and local_config.py located in this directory.\n " 
    335337    TEMPLATE += "; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!" 
    336     TEMPLATE += "\n[Setup]\n\n"  
     338    TEMPLATE += "\n[Setup]\n\n" 
    337339    TEMPLATE += "ChangesAssociations=%s\n" %str('yes') 
    338340    TEMPLATE += "AppName=%s\n" % str(AppName) 
     
    353355    TEMPLATE += "PrivilegesRequired=%s\n" % str(PrivilegesRequired) 
    354356    TEMPLATE += "UsePreviousAppDir=no\n" 
    355     
     357 
    356358    TEMPLATE += write_registry(data_extension=DATA_EXTENSION, 
    357359                                app_extension=APP_EXTENSION) 
     
    365367    TEMPLATE += write_uninstalldelete() 
    366368    path = '%s.iss' % str(INSTALLER_FILE) 
    367     f = open(path,'w')  
     369    f = open(path,'w') 
    368370    f.write(TEMPLATE) 
    369371    f.close() 
    370     print "Generate Inno setup installer script complete" 
    371     print "A new file %s.iss should be created.Please refresh your directory" % str(INSTALLER_FILE) 
    372      
     372    print("Generate Inno setup installer script complete") 
     373    print("A new file %s.iss should be created.Please refresh your directory" % str(INSTALLER_FILE)) 
     374 
    373375if __name__ == "__main__": 
    374376    generate_installer() 
Note: See TracChangeset for help on using the changeset viewer.