Changeset 914ba0a in sasview for sasview/installer_generator.py
- Timestamp:
- May 2, 2017 3:58:01 PM (7 years ago)
- 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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasview/installer_generator.py
r899e084 r914ba0a 4 4 exists in the current directory. Edit local_config.py according to your needs. 5 5 """ 6 from __future__ import print_function 7 8 import local_config 6 9 import os 7 import sys8 10 import string 9 11 … … 17 19 AppVerName = str(local_config.__appname__ )+'-'+ str(local_config.__version__) 18 20 Dev = '' 19 if 'dev' in AppVerName.lower():21 if AppVerName.lower().count('dev') > 0: 20 22 Dev = '-Dev' 21 23 AppPublisher = local_config._copyright … … 24 26 AppUpdatesURL = local_config._homepage 25 27 ChangesEnvironment = 'true' 26 DefaultDirName = os.path.join("{pf}" , AppName+Dev) 28 DefaultDirName = os.path.join("{pf}" , AppName+Dev) 27 29 DefaultGroupName = os.path.join(local_config.DefaultGroupName, AppVerName) 28 30 29 31 OutputBaseFilename = local_config.OutputBaseFilename 30 SetupIconFile = local_config.SetupIconFile_win32 SetupIconFile = "images\\ball.ico" 31 33 LicenseFile = 'license.txt' 32 34 DisableProgramGroupPage = 'yes' … … 47 49 list_app =[] 48 50 try: 49 51 50 52 #(ext, type, name, flags) 51 53 from sas.sascalc.dataloader.loader import Loader … … 68 70 file_type, ext = string.split(item, "|*", 1) 69 71 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)) 71 73 except: 72 74 pass … … 92 94 % str(APPLICATION) 93 95 msg += """ValueType: %s; """ % str('string') 94 msg += """ValueName: "%s";\t""" %str('') 96 msg += """ValueName: "%s";\t""" %str('') 95 97 msg += """ValueData: \"""{app}\%s"" ""%s1\"""; \t"""% (str(APPLICATION), 96 str('%')) 98 str('%')) 97 99 msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 98 100 msg += "\n" 99 user_list = "Software\Classes" 101 user_list = "Software\Classes" 100 102 for (ext, type, _) in data_extension: 101 103 list = os.path.join(user_list, ext, openwithlist) … … 108 110 % (str(user_list), str(APPLICATION)) 109 111 msg += """ValueType: %s; """ % str('string') 110 msg += """ValueName: "%s";\t""" %str('') 112 msg += """ValueName: "%s";\t""" %str('') 111 113 msg += """ValueData: \"""{app}\%s"" ""%s1\"""; \t"""% (str(APPLICATION), 112 str('%')) 114 str('%')) 113 115 msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 114 msg += "\n" 116 msg += "\n" 115 117 if app_extension is not None and app_extension: 116 118 for (ext, type, _) in app_extension: 117 119 msg += """Root: HKCR;\tSubkey: "%s";\t""" % str(ext) 118 120 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 120 122 #reader for this file. change the value of file_type to another 121 123 #string modify the default reader … … 127 129 msg += """Root: HKCR; Subkey: "{app}\%s";\t""" % str(APPLICATION) 128 130 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") 131 133 msg += """ Flags: %s \t""" % str("uninsdeletekey noerror") 132 134 msg += "\n" 133 135 134 136 #execute the file on double-click 135 137 msg += """Root: HKCR; Subkey: "{app}\%s\shell\open\command";\t""" % str(APPLICATION) 136 138 msg += """ValueType: %s; """ % str('string') 137 msg += """ValueName: "%s";\t""" %str('') 139 msg += """ValueName: "%s";\t""" %str('') 138 140 msg += """ValueData: \"""{app}\%s"" ""%s1\""";\t"""% (str(APPLICATION), 139 str('%')) 141 str('%')) 140 142 msg += """ Flags: %s \t""" % str("uninsdeletevalue noerror") 141 msg += "\n" 143 msg += "\n" 142 144 #create default icon 143 145 msg += """Root: HKCR; Subkey: "{app}\%s";\t""" % str(SetupIconFile) 144 146 msg += """ValueType: %s; """ % str('string') 145 msg += """ValueName: "%s";\t""" % str('') 147 msg += """ValueName: "%s";\t""" % str('') 146 148 msg += """ValueData: "{app}\%s,0";\t""" % str(APPLICATION) 147 149 msg += """ Flags: %s \t""" % str("uninsdeletevalue noerror") 148 msg += "\n" 149 150 150 msg += "\n" 151 152 151 153 #SASVIEWPATH 152 154 msg += """Root: HKLM; Subkey: "%s";\t""" % str('SYSTEM\CurrentControlSet\Control\Session Manager\Environment') 153 155 msg += """ValueType: %s; """ % str('expandsz') 154 msg += """ValueName: "%s";\t""" % str('SASVIEWPATH') 156 msg += """ValueName: "%s";\t""" % str('SASVIEWPATH') 155 157 msg += """ValueData: "{app}";\t""" 156 158 msg += """ Flags: %s""" % str('uninsdeletevalue noerror') 157 159 msg += "\n" 158 160 159 161 #PATH 160 162 msg += """; Write to PATH (below) is disabled; need more tests\n""" 161 163 msg += """;Root: HKCU; Subkey: "%s";\t""" % str('Environment') 162 164 msg += """ValueType: %s; """ % str('expandsz') 163 msg += """ValueName: "%s";\t""" % str('PATH') 165 msg += """ValueName: "%s";\t""" % str('PATH') 164 166 msg += """ValueData: "%s;{olddata}";\t""" % str('%SASVIEWPATH%') 165 167 msg += """ Check: %s""" % str('NeedsAddPath()') 166 168 msg += "\n" 167 168 return msg 169 170 def write_language(language=['english'], msfile="compiler:Default.isl"): 169 170 return msg 171 172 def write_language(language=['english'], msfile="compiler:Default.isl"): 171 173 """ 172 174 define the language of the application 173 """ 175 """ 174 176 msg = '' 175 177 if language: 176 178 msg = "\n\n[Languages]\n" 177 179 for lang in language: 178 msg += """Name: "%s";\tMessagesFile: "%s"\n""" % (str(lang), 180 msg += """Name: "%s";\tMessagesFile: "%s"\n""" % (str(lang), 179 181 str(msfile)) 180 return msg 182 return msg 181 183 182 184 def write_tasks(): … … 202 204 msg += """Flags: ignoreversion recursesubdirs createallsubdirs\n""" 203 205 msg += """Source: "dist\plugin_models\*";\tDestDir: "{userdesktop}\..\.sasview\plugin_models";\t""" 204 msg += """Flags: recursesubdirs createallsubdirs\n""" 206 msg += """Flags: recursesubdirs createallsubdirs\n""" 205 207 msg += """Source: "dist\compiled_models\*";\tDestDir: "{userdesktop}\..\.sasmodels\compiled_models";\t""" 206 208 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""" 208 210 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""" 211 213 msg += """;\tNOTE: Don't use "Flags: ignoreversion" on any shared system files""" 212 214 return msg … … 236 238 msg = """\n\n[Run]\n""" 237 239 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) 239 241 msg += """Flags: nowait postinstall skipifsilent\n""" 240 242 msg += """; Install the Microsoft C++ DLL redistributable package if it is """ … … 261 263 msg = """\n\n[Dirs]\n""" 262 264 msg += """Name: "{app}\%s";\t""" % str('') 263 msg += """Permissions: everyone-modify\t""" 264 msg += """\n""" 265 msg += """Permissions: everyone-modify\t""" 266 msg += """\n""" 265 267 return msg 266 268 267 269 def write_code(): 268 270 """ 269 Code that checks the existing path and snaviewpath 271 Code that checks the existing path and snaviewpath 270 272 in the environmental viriables/PATH 271 273 """ 272 274 msg = """\n\n[Code]\n""" 273 msg += """function InstallVC90CRT(): Boolean;\n""" 275 msg += """function InstallVC90CRT(): Boolean;\n""" 274 276 msg += """begin\n""" 275 277 msg += """ Result := not DirExists('C:\WINDOWS\WinSxS\\x86_Microsoft.VC90.""" 276 278 msg += """CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375');\n""" 277 279 msg += """end;\n\n""" 278 msg += """function NeedsAddPath(): boolean;\n""" 279 msg += """var\n""" 280 msg += """function NeedsAddPath(): boolean;\n""" 281 msg += """var\n""" 280 282 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""" 285 287 msg += """ RegQueryStringValue(HKEY_CURRENT_USER,'Environment',""" 286 288 msg += """'PATH', oldpath)\n""" … … 325 327 msg += """; installation.\n""" 326 328 msg += """Type: dirifempty; Name: "{app}"\n""" 327 msg += """\n""" 329 msg += """\n""" 328 330 return msg 329 331 … … 334 336 TEMPLATE += "\n; and local_config.py located in this directory.\n " 335 337 TEMPLATE += "; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!" 336 TEMPLATE += "\n[Setup]\n\n" 338 TEMPLATE += "\n[Setup]\n\n" 337 339 TEMPLATE += "ChangesAssociations=%s\n" %str('yes') 338 340 TEMPLATE += "AppName=%s\n" % str(AppName) … … 353 355 TEMPLATE += "PrivilegesRequired=%s\n" % str(PrivilegesRequired) 354 356 TEMPLATE += "UsePreviousAppDir=no\n" 355 357 356 358 TEMPLATE += write_registry(data_extension=DATA_EXTENSION, 357 359 app_extension=APP_EXTENSION) … … 365 367 TEMPLATE += write_uninstalldelete() 366 368 path = '%s.iss' % str(INSTALLER_FILE) 367 f = open(path,'w') 369 f = open(path,'w') 368 370 f.write(TEMPLATE) 369 371 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 373 375 if __name__ == "__main__": 374 376 generate_installer()
Note: See TracChangeset
for help on using the changeset viewer.