6 Fetch 3rd party dependencies for PyXMake from DLR's resource server. 8 @note: PyXMake 3rd party dependency installer 12 ---------------------------------------------------------------------------------------------- 19 @author: garb_ma [DLR-FA,STM Braunschweig] 20 ---------------------------------------------------------------------------------------------- 37 from PyXMake
import Build
41 __pyx_dependency = [
"perl",
"latex",
"pandoc"]
46 if __name__ ==
'__main__':
49 for __package
in __pyx_dependency:
52 if __package.lower() ==
"perl":
54 elif __package.lower() ==
"latex":
55 package_name =
"MikTeX" 56 elif __package.lower() ==
"pandoc":
57 package_name =
"Pandoc" 59 raise NotImplementedError
62 __pyx_url_delimn =
"/"; __pyx_point =
"."; __pyx_space =
" ";
63 __pyx_package_url = __pyx_url_delimn.join([
"https:",
"",
"fa-jenkins2:8080",
"job",
"STM_Archive",
"lastSuccessfulBuild",
"artifact",
"Archive", __pyx_point.join([package_name,
"zip"])])
66 __pyx_zip_file = __pyx_package_url.rsplit(__pyx_url_delimn, 1)[-1].lower()
67 __pyx_package = os.path.join(Build.__path__[0],
"bin",__pyx_zip_file.split(
".")[0])
68 __pyx_source = __pyx_zip_file.split(
".")[0]
72 subprocess.check_call([__package.lower(),
"--help"])
75 if __debug__
and not os.path.exists(__pyx_package):
78 print(
'==================================')
79 print(
'%s is required for the current process, but is' % __package.upper())
80 print(
'not found on your machine.')
81 print(
'Fetching portable installation from STM archive. ')
82 print(
'==================================')
85 download_path = os.path.join(os.path.expanduser(
'~/Downloads'), __pyx_zip_file)
86 urllib.request.urlretrieve(__pyx_package_url, download_path)
89 with zipfile.ZipFile(download_path,
'r') as zip_folder: 90 zip_folder.extractall(__pyx_package) 93 print(
'==================================')
94 print(
'Successfully installed %s' % __package.upper())
95 print(
'==================================')
98 os.remove(download_path)
102 if os.path.exists(__pyx_package):
105 if os.path.exists(os.path.join(__pyx_package,__pyx_source,
"site",
"bin")):
106 pathlist.extend([os.path.join(__pyx_package,__pyx_source,
"site",
"bin"),os.path.join(__pyx_package,__pyx_source,
"bin"),os.path.join(__pyx_package,
"c",
"bin")])
108 elif os.path.exists(os.path.join(__pyx_package,
"texmfs",
"install",__pyx_source,
"bin",
"x64")):
109 pathlist.append(os.path.join(__pyx_package,
"texmfs",
"install",__pyx_source,
"bin",
"x64"))
112 pathlist.append(__pyx_package)
114 os.environ[
"PATH"] += os.pathsep + os.pathsep.join(pathlist)
117 assert Utility.Popen(__pyx_space.join([__package,
"--help"]),0).returncode == 0