@@ -22,6 +22,7 @@ def write_bindings(
2222 env_file , # type: str
2323 pex , # type: str
2424 venv_bin_dir = None , # type: Optional[str]
25+ desktop_file = None , # type: Optional[str]
2526):
2627 # type: (...) -> None
2728
@@ -31,6 +32,8 @@ def write_bindings(
3132 if venv_bin_dir :
3233 print ("VIRTUAL_ENV=" + os .path .dirname (venv_bin_dir ), file = fp )
3334 print ("VENV_BIN_DIR_PLUS_SEP=" + venv_bin_dir + os .path .sep , file = fp )
35+ if desktop_file :
36+ print ("DESKTOP_FILE=" + desktop_file , file = fp )
3437
3538
3639class PexDirNotFound (Exception ):
@@ -67,15 +70,14 @@ def _desktop_install_path(app_name):
6770def desktop_install (
6871 app_name , # type: str
6972 desktop_file , # type: str
73+ desktop_install_path , # type: str
7074 scie_jump , # type: str
7175 scie_lift , # type: str
7276 scie_exe , # type: str
7377 icon = None , # type: Optional[str]
7478):
7579 # type: (...) -> None
7680
77- desktop_install_path = _desktop_install_path (app_name )
78-
7981 try :
8082 os .makedirs (os .path .dirname (desktop_install_path ))
8183 except OSError as e :
@@ -105,23 +107,21 @@ class UninstallError(Exception):
105107 pass
106108
107109
108- def desktop_uninstall (app_name ):
110+ def desktop_uninstall (desktop_file ):
109111 # type: (str) -> None
110- desktop_install_path = _desktop_install_path (app_name )
111112 try :
112- os .unlink (desktop_install_path )
113+ os .unlink (desktop_file )
113114 except OSError as e :
114115 if e .errno != errno .ENOENT :
115116 raise UninstallError (
116- "Failed to uninstall {desktop_file}: {err}" .format (
117- desktop_file = desktop_install_path , err = e
118- )
117+ "Failed to uninstall {desktop_file}: {err}" .format (desktop_file = desktop_file , err = e )
119118 )
120119
121120
122121def prompt_desktop_install (
123122 app_name , # type: str
124123 desktop_file , # type: str
124+ desktop_install_path , # type: str
125125 scie_jump , # type: str
126126 scie_lift , # type: str
127127 scie_exe , # type: str
@@ -142,6 +142,7 @@ def prompt_desktop_install(
142142 desktop_install (
143143 app_name = app_name ,
144144 desktop_file = desktop_file ,
145+ desktop_install_path = desktop_install_path ,
145146 scie_jump = scie_jump ,
146147 scie_lift = scie_lift ,
147148 scie_exe = scie_exe ,
@@ -187,7 +188,9 @@ def prompt_desktop_install(
187188 )
188189 )
189190
191+ desktop_install_path = None # type: Optional[str]
190192 if options .desktop_file :
193+ desktop_install_path = _desktop_install_path (options .scie_name )
191194 exe = os .environ ["SCIE" ]
192195 override_install_desktop_file = os .environ .get ("CONFIGURE_DESKTOP_INSTALL" , "" ).lower ()
193196 if override_install_desktop_file == "prompt" or (
@@ -196,6 +199,7 @@ def prompt_desktop_install(
196199 prompt_desktop_install (
197200 app_name = options .scie_name ,
198201 desktop_file = options .desktop_file ,
202+ desktop_install_path = desktop_install_path ,
199203 scie_jump = options .scie_jump ,
200204 scie_lift = options .scie_lift ,
201205 scie_exe = exe ,
@@ -207,17 +211,19 @@ def prompt_desktop_install(
207211 desktop_install (
208212 app_name = options .scie_name ,
209213 desktop_file = options .desktop_file ,
214+ desktop_install_path = desktop_install_path ,
210215 scie_jump = options .scie_jump ,
211216 scie_lift = options .scie_lift ,
212217 scie_exe = exe ,
213218 icon = options .icon ,
214219 )
215220 elif override_install_desktop_file == "uninstall" :
216- desktop_uninstall (app_name = options . scie_name )
221+ desktop_uninstall (desktop_file = desktop_install_path )
217222
218223 write_bindings (
219224 env_file = os .environ ["SCIE_BINDING_ENV" ],
220225 pex = pex ,
221226 venv_bin_dir = os .path .join (pex , options .venv_bin_dir ) if options .venv_bin_dir else None ,
227+ desktop_file = desktop_install_path ,
222228 )
223229 sys .exit (0 )
0 commit comments