Basic install function

This commit is contained in:
Ellwood Zwovic
2017-07-11 22:39:31 -07:00
parent f411c68115
commit 7d7be711d3
2 changed files with 118 additions and 7 deletions

View File

@@ -182,12 +182,21 @@ class BPKG_OT_install(SubprocMixin, bpy.types.Operator):
self.msg_handlers = {
subproc.Progress: self._subproc_progress,
subproc.DownloadError: self._subproc_download_error,
subproc.InstallError: self._subproc_install_error,
subproc.FileConflictError: self._subproc_conflict_error,
subproc.Success: self._subproc_success,
subproc.Aborted: self._subproc_aborted,
}
import pathlib
# TODO: We need other paths besides this one on subprocess end, so it might be better to pass them all at once.
# For now, just pass this one.
install_path = pathlib.Path(bpy.utils.user_resource('SCRIPTS', 'addons', create=True))
self.log.debug("Using %s as install path", install_path)
proc = multiprocessing.Process(target=subproc.download_and_install,
args=(self.pipe_subproc, self.package_url,))
args=(self.pipe_subproc, self.package_url, install_path))
return proc
def _subproc_progress(self, progress: subproc.Progress):
@@ -197,12 +206,20 @@ class BPKG_OT_install(SubprocMixin, bpy.types.Operator):
self.report({'ERROR'}, 'Unable to download package: %s' % error.description)
self.quit()
def _subproc_install_error(self, error: subproc.InstallError):
self.report({'ERROR'}, 'Unable to install package: %s' % error.message)
self.quit()
def _subproc_conflict_error(self, error: subproc.FileConflictError):
self.report({'ERROR'}, 'Unable to install package: %s' % error.message)
self.quit()
def _subproc_success(self, success: subproc.Success):
self.report({'INFO'}, 'Package downloaded successfully')
self.report({'INFO'}, 'Package installed successfully')
self.quit()
def _subproc_aborted(self, aborted: subproc.Aborted):
self.report({'ERROR'}, 'Package download aborted per your request')
self.report({'ERROR'}, 'Package installation aborted per your request')
self.quit()
def report_process_died(self):