Begin adding linux installation
This commit is contained in:
		
							parent
							
								
									12c57fa222
								
							
						
					
					
						commit
						acc5d57340
					
				
							
								
								
									
										169
									
								
								devenver.py
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								devenver.py
									
									
									
									
									
								
							| @ -24,74 +24,6 @@ from enum import Enum | |||||||
| # Internal | # Internal | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| DOWNLOAD_CHUNK_SIZE = 1 * 1024 * 1024 # 1 megabyte | DOWNLOAD_CHUNK_SIZE = 1 * 1024 * 1024 # 1 megabyte | ||||||
| IS_WINDOWS          = os.name == "nt" |  | ||||||
| 
 |  | ||||||
| # ------------------------------------------------------------------------------ |  | ||||||
| # This app list must always be installed, they provide the tools to install all |  | ||||||
| # other archives. Upon installation, we will collect the installation executable |  | ||||||
| # path and store them in global variables for the rest of the progam to use to |  | ||||||
| # unzip the files. |  | ||||||
| internal_app_list = [] |  | ||||||
| 
 |  | ||||||
| internal_app_list.append({ |  | ||||||
|     'label': '7zip', |  | ||||||
|     'manifests': [], |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| version = "920" |  | ||||||
| internal_app_list[-1]['manifests'].append({ # Download the bootstrap 7zip, this can be unzipped using shutils |  | ||||||
|     'download_checksum': '2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac', |  | ||||||
|     'download_url': f'https://www.7-zip.org/a/7za{version}.zip', |  | ||||||
|     'version': version, |  | ||||||
|     'executables': [ |  | ||||||
|         { |  | ||||||
|             'path': '7za.exe', |  | ||||||
|             'symlink': [], |  | ||||||
|             'add_to_devenv_path': False, |  | ||||||
|             'checksum': 'c136b1467d669a725478a6110ebaaab3cb88a3d389dfa688e06173c066b76fcf' |  | ||||||
|         } |  | ||||||
|     ], |  | ||||||
|     'add_to_devenv_script': [], |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| version = "2201" |  | ||||||
| internal_app_list[-1]['manifests'].append({ # Download proper 7zip, extract this exe with the bootstrap 7zip |  | ||||||
|     'download_checksum': 'b055fee85472921575071464a97a79540e489c1c3a14b9bdfbdbab60e17f36e4', |  | ||||||
|     'download_url':      f'https://www.7-zip.org/a/7z{version}-x64.exe', |  | ||||||
|     'version': version, |  | ||||||
|     'executables': [ |  | ||||||
|         { |  | ||||||
|             'path': '7z.exe', |  | ||||||
|             'symlink': [], |  | ||||||
|             'add_to_devenv_path': True, |  | ||||||
|             'checksum': '254cf6411d38903b2440819f7e0a847f0cfee7f8096cfad9e90fea62f42b0c23' |  | ||||||
|         } |  | ||||||
|     ], |  | ||||||
|     'add_to_devenv_script':  [], |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| # ------------------------------------------------------------------------------ |  | ||||||
| 
 |  | ||||||
| version = "1.5.2" |  | ||||||
| internal_app_list.append({ |  | ||||||
|     "label": "zstd", |  | ||||||
|     "manifests": [ |  | ||||||
|         { |  | ||||||
|             "download_checksum": "68897cd037ee5e44c6d36b4dbbd04f1cc4202f9037415a3251951b953a257a09", |  | ||||||
|             "download_url": f"https://github.com/facebook/zstd/releases/download/v{version}/zstd-v{version}-win64.zip", |  | ||||||
|             "version": version, |  | ||||||
|             "executables": [ |  | ||||||
|                 { |  | ||||||
|                     "path": "zstd.exe", |  | ||||||
|                     "symlink": [], |  | ||||||
|                     "add_to_devenv_path": True, |  | ||||||
|                     "checksum": "f14e78c0651851a670f508561d2c5d647da0ba08e6b73231f2e7539812bae311", |  | ||||||
|                 }, |  | ||||||
|             ], |  | ||||||
|             "add_to_devenv_script": [], |  | ||||||
|         }, |  | ||||||
|     ], |  | ||||||
| }) |  | ||||||
| 
 | 
 | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| 
 | 
 | ||||||
| @ -101,7 +33,6 @@ zstd_exe           = "" | |||||||
| zip7_exe           = "" | zip7_exe           = "" | ||||||
| zip7_bootstrap_exe = "" | zip7_bootstrap_exe = "" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # Functions | # Functions | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| def print_header(title): | def print_header(title): | ||||||
| @ -216,7 +147,8 @@ def download_and_install_archive(download_url, | |||||||
|                                  label, |                                  label, | ||||||
|                                  unzip_method, |                                  unzip_method, | ||||||
|                                  download_dir, |                                  download_dir, | ||||||
|                                  install_dir): |                                  install_dir, | ||||||
|  |                                  is_windows): | ||||||
| 
 | 
 | ||||||
|     exe_install_dir  = get_exe_install_dir(install_dir=install_dir, |     exe_install_dir  = get_exe_install_dir(install_dir=install_dir, | ||||||
|                                            label=label, |                                            label=label, | ||||||
| @ -321,7 +253,7 @@ def download_and_install_archive(download_url, | |||||||
|                     # We call this an intermediate zip file, we will extract that file |                     # We call this an intermediate zip file, we will extract that file | ||||||
|                     # with 7zip. After we're done, we will delete that _intermediate_ |                     # with 7zip. After we're done, we will delete that _intermediate_ | ||||||
|                     # file to cleanup our install directory. |                     # file to cleanup our install directory. | ||||||
|                     if archive_path.suffix == '.zst' or archive_path.suffix == '.xz': |                     if archive_path.suffix == '.zst' or archive_path.suffix == '.xz' or archive_path.suffix == '.gz': | ||||||
| 
 | 
 | ||||||
|                         archive_without_suffix = pathlib.Path(str(archive_path)[:-len(archive_path.suffix)]).name |                         archive_without_suffix = pathlib.Path(str(archive_path)[:-len(archive_path.suffix)]).name | ||||||
|                         next_archive_path = pathlib.Path(exe_install_dir, archive_without_suffix) |                         next_archive_path = pathlib.Path(exe_install_dir, archive_without_suffix) | ||||||
| @ -445,7 +377,7 @@ def download_and_install_archive(download_url, | |||||||
|             if os.path.exists(symlink_dest): |             if os.path.exists(symlink_dest): | ||||||
|                 # Windows uses hardlinks because symlinks require you to enable "developer" mode |                 # Windows uses hardlinks because symlinks require you to enable "developer" mode | ||||||
|                 # Everyone else uses symlinks |                 # Everyone else uses symlinks | ||||||
|                 if (IS_WINDOWS and not os.path.isfile(symlink_dest)) or (not IS_WINDOWS and not os.path.islink(symlink_dest)): |                 if (is_windows and not os.path.isfile(symlink_dest)) or (not is_windows and not os.path.islink(symlink_dest)): | ||||||
|                     lprint( "- Cannot create symlink! The destination file to create the symlink at.", level=1) |                     lprint( "- Cannot create symlink! The destination file to create the symlink at.", level=1) | ||||||
|                     lprint( "  already exists and is *not* a link. We cannot remove this safely as we", level=1) |                     lprint( "  already exists and is *not* a link. We cannot remove this safely as we", level=1) | ||||||
|                     lprint( "  don't know what it is, exiting.", level=1) |                     lprint( "  don't know what it is, exiting.", level=1) | ||||||
| @ -458,7 +390,7 @@ def download_and_install_archive(download_url, | |||||||
|                     os.unlink(symlink_dest) |                     os.unlink(symlink_dest) | ||||||
| 
 | 
 | ||||||
|             if not skip_link: |             if not skip_link: | ||||||
|                 if IS_WINDOWS == True: |                 if is_windows == True: | ||||||
|                     os.link(src=symlink_src, dst=symlink_dest) |                     os.link(src=symlink_src, dst=symlink_dest) | ||||||
|                 else: |                 else: | ||||||
|                     os.symlink(src=symlink_src, dst=symlink_dest) |                     os.symlink(src=symlink_src, dst=symlink_dest) | ||||||
| @ -471,7 +403,7 @@ def download_and_install_archive(download_url, | |||||||
| 
 | 
 | ||||||
|     global devenv_script_buffer |     global devenv_script_buffer | ||||||
|     for path in paths_to_add_to_devenv_script: |     for path in paths_to_add_to_devenv_script: | ||||||
|         if IS_WINDOWS: |         if is_windows: | ||||||
|             devenv_script_buffer += f"set PATH=%~dp0{path};%PATH%\n" |             devenv_script_buffer += f"set PATH=%~dp0{path};%PATH%\n" | ||||||
|         else: |         else: | ||||||
|             devenv_script_buffer += f"PATH=$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" ) &> /dev/null && pwd ){path}\";%PATH%\n" |             devenv_script_buffer += f"PATH=$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" ) &> /dev/null && pwd ){path}\";%PATH%\n" | ||||||
| @ -547,8 +479,10 @@ def validate_app_list(app_list): | |||||||
| 
 | 
 | ||||||
|     return result |     return result | ||||||
| 
 | 
 | ||||||
|  | internal_app_list = [] | ||||||
| devenv_script_buffer = "" | devenv_script_buffer = "" | ||||||
| def install_app_list(app_list, download_dir, install_dir): | 
 | ||||||
|  | def install_app_list(app_list, download_dir, install_dir, is_windows): | ||||||
|     title = "Internal Apps" if app_list is internal_app_list else "User Apps" |     title = "Internal Apps" if app_list is internal_app_list else "User Apps" | ||||||
|     print_header(title) |     print_header(title) | ||||||
|     result = {} |     result = {} | ||||||
| @ -573,6 +507,7 @@ def install_app_list(app_list, download_dir, install_dir): | |||||||
|             # Bootstrapping code, when installing the internal app list, we will |             # Bootstrapping code, when installing the internal app list, we will | ||||||
|             # assign the variables to point to our unarchiving tools. |             # assign the variables to point to our unarchiving tools. | ||||||
|             # ------------------------------------------------------------------ |             # ------------------------------------------------------------------ | ||||||
|  |             if is_windows: | ||||||
|                 if app_list is internal_app_list: |                 if app_list is internal_app_list: | ||||||
|                     global zip7_exe |                     global zip7_exe | ||||||
|                     global zip7_bootstrap_exe |                     global zip7_bootstrap_exe | ||||||
| @ -588,7 +523,8 @@ def install_app_list(app_list, download_dir, install_dir): | |||||||
| 
 | 
 | ||||||
|                     if label == 'zstd': |                     if label == 'zstd': | ||||||
|                         zstd_exe = exe_path |                         zstd_exe = exe_path | ||||||
| 
 |             else: | ||||||
|  |                 unzip_method = UnzipMethod.SHUTILS | ||||||
| 
 | 
 | ||||||
|             # Download and install |             # Download and install | ||||||
|             # ------------------------------------------------------------------ |             # ------------------------------------------------------------------ | ||||||
| @ -600,7 +536,8 @@ def install_app_list(app_list, download_dir, install_dir): | |||||||
|                                          label=label, |                                          label=label, | ||||||
|                                          unzip_method=unzip_method, |                                          unzip_method=unzip_method, | ||||||
|                                          download_dir=download_dir, |                                          download_dir=download_dir, | ||||||
|                                          install_dir=install_dir) |                                          install_dir=install_dir, | ||||||
|  |                                          is_windows=is_windows) | ||||||
| 
 | 
 | ||||||
|             # Post-installation |             # Post-installation | ||||||
|             # ------------------------------------------------------------------ |             # ------------------------------------------------------------------ | ||||||
| @ -645,6 +582,7 @@ base_install_dir   = default_base_install_dir | |||||||
| 
 | 
 | ||||||
| def run(user_app_list, | def run(user_app_list, | ||||||
|         devenv_script_name, |         devenv_script_name, | ||||||
|  |         is_windows, | ||||||
|         download_dir=base_downloads_dir, |         download_dir=base_downloads_dir, | ||||||
|         install_dir=base_install_dir): |         install_dir=base_install_dir): | ||||||
|     """ Download and install the given user app list at the specified |     """ Download and install the given user app list at the specified | ||||||
| @ -668,6 +606,75 @@ def run(user_app_list, | |||||||
|     base_downloads_dir = download_dir |     base_downloads_dir = download_dir | ||||||
|     base_install_dir = install_dir |     base_install_dir = install_dir | ||||||
| 
 | 
 | ||||||
|  |     # -------------------------------------------------------------------------- | ||||||
|  |     # This app list must always be installed, they provide the tools to install all | ||||||
|  |     # other archives. Upon installation, we will collect the installation executable | ||||||
|  |     # path and store them in global variables for the rest of the progam to use to | ||||||
|  |     # unzip the files. | ||||||
|  |     global internal_app_list | ||||||
|  |     internal_app_list = [] | ||||||
|  | 
 | ||||||
|  |     if is_windows: | ||||||
|  |         internal_app_list.append({ | ||||||
|  |             'label': '7zip', | ||||||
|  |             'manifests': [], | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         version = "920" | ||||||
|  |         internal_app_list[-1]['manifests'].append({ # Download the bootstrap 7zip, this can be unzipped using shutils | ||||||
|  |             'download_checksum': '2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac', | ||||||
|  |             'download_url': f'https://www.7-zip.org/a/7za{version}.zip', | ||||||
|  |             'version': version, | ||||||
|  |             'executables': [ | ||||||
|  |                 { | ||||||
|  |                     'path': '7za.exe', | ||||||
|  |                     'symlink': [], | ||||||
|  |                     'add_to_devenv_path': False, | ||||||
|  |                     'checksum': 'c136b1467d669a725478a6110ebaaab3cb88a3d389dfa688e06173c066b76fcf' | ||||||
|  |                 } | ||||||
|  |             ], | ||||||
|  |             'add_to_devenv_script': [], | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         version = "2201" | ||||||
|  |         internal_app_list[-1]['manifests'].append({ # Download proper 7zip, extract this exe with the bootstrap 7zip | ||||||
|  |             'download_checksum': 'b055fee85472921575071464a97a79540e489c1c3a14b9bdfbdbab60e17f36e4', | ||||||
|  |             'download_url':      f'https://www.7-zip.org/a/7z{version}-x64.exe', | ||||||
|  |             'version': version, | ||||||
|  |             'executables': [ | ||||||
|  |                 { | ||||||
|  |                     'path': '7z.exe', | ||||||
|  |                     'symlink': [], | ||||||
|  |                     'add_to_devenv_path': True, | ||||||
|  |                     'checksum': '254cf6411d38903b2440819f7e0a847f0cfee7f8096cfad9e90fea62f42b0c23' | ||||||
|  |                 } | ||||||
|  |             ], | ||||||
|  |             'add_to_devenv_script':  [], | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         # ------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  |         version = "1.5.2" | ||||||
|  |         internal_app_list.append({ | ||||||
|  |             "label": "zstd", | ||||||
|  |             "manifests": [ | ||||||
|  |                 { | ||||||
|  |                     "download_checksum": "68897cd037ee5e44c6d36b4dbbd04f1cc4202f9037415a3251951b953a257a09", | ||||||
|  |                     "download_url": f"https://github.com/facebook/zstd/releases/download/v{version}/zstd-v{version}-win64.zip", | ||||||
|  |                     "version": version, | ||||||
|  |                     "executables": [ | ||||||
|  |                         { | ||||||
|  |                             "path": "zstd.exe", | ||||||
|  |                             "symlink": [], | ||||||
|  |                             "add_to_devenv_path": True, | ||||||
|  |                             "checksum": "f14e78c0651851a670f508561d2c5d647da0ba08e6b73231f2e7539812bae311", | ||||||
|  |                         }, | ||||||
|  |                     ], | ||||||
|  |                     "add_to_devenv_script": [], | ||||||
|  |                 }, | ||||||
|  |             ], | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|     # Run |     # Run | ||||||
|     # -------------------------------------------------------------------------- |     # -------------------------------------------------------------------------- | ||||||
|     # Create the starting directories and install the internal app list (e.g. |     # Create the starting directories and install the internal app list (e.g. | ||||||
| @ -705,16 +712,18 @@ def run(user_app_list, | |||||||
|     # Install apps |     # Install apps | ||||||
|     internal_apps = install_app_list(app_list=internal_app_list, |     internal_apps = install_app_list(app_list=internal_app_list, | ||||||
|                                      download_dir=download_dir, |                                      download_dir=download_dir, | ||||||
|                                      install_dir=install_dir) |                                      install_dir=install_dir, | ||||||
|  |                                      is_windows=is_windows) | ||||||
| 
 | 
 | ||||||
|     user_apps     = install_app_list(app_list=user_app_list, |     user_apps     = install_app_list(app_list=user_app_list, | ||||||
|                                      download_dir=download_dir, |                                      download_dir=download_dir, | ||||||
|                                      install_dir=install_dir) |                                      install_dir=install_dir, | ||||||
|  |                                      is_windows=is_windows) | ||||||
| 
 | 
 | ||||||
|     # Write the devenv script with environment variables |     # Write the devenv script with environment variables | ||||||
|     devenv_script_buffer += "set PATH=%~dp0Symlinks;%PATH%\n" |     devenv_script_buffer += "set PATH=%~dp0Symlinks;%PATH%\n" | ||||||
| 
 | 
 | ||||||
|     devenv_script_name = f"{devenv_script_name}.bat" if IS_WINDOWS else f"{devenv_script_name}dev_env.sh" |     devenv_script_name = f"{devenv_script_name}.bat" if is_windows else f"{devenv_script_name}dev_env.sh" | ||||||
|     devenv_script_path = pathlib.Path(install_dir, devenv_script_name) |     devenv_script_path = pathlib.Path(install_dir, devenv_script_name) | ||||||
|     lprint(f"Writing script to augment the environment with installed applications: {devenv_script_path}") |     lprint(f"Writing script to augment the environment with installed applications: {devenv_script_path}") | ||||||
|     with open(devenv_script_path, 'w') as file: |     with open(devenv_script_path, 'w') as file: | ||||||
|  | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,8 +1,9 @@ | |||||||
| def get_manifest(): | def get_manifest(is_windows): | ||||||
|     result = [] |     result = [] | ||||||
| 
 | 
 | ||||||
|     # -------------------------------------------------------------------------- |     # -------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |     if is_windows: | ||||||
|         version = "7.9.0" |         version = "7.9.0" | ||||||
|         result.append({ |         result.append({ | ||||||
|             "label": "digiKam", |             "label": "digiKam", | ||||||
| @ -26,6 +27,7 @@ def get_manifest(): | |||||||
| 
 | 
 | ||||||
|     # -------------------------------------------------------------------------- |     # -------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |     if is_windows: | ||||||
|         version = "0.25.0" |         version = "0.25.0" | ||||||
|         result.append({ |         result.append({ | ||||||
|             "label": "PicoTorrent", |             "label": "PicoTorrent", | ||||||
|  | |||||||
| @ -33,18 +33,15 @@ def git_clone(install_dir, git_exe, url, commit_hash): | |||||||
| 
 | 
 | ||||||
| # Arguments | # Arguments | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| default_download_dir = devenver.script_dir / 'Downloads' |  | ||||||
| default_install_dir  = devenver.script_dir / 'Win' |  | ||||||
| 
 |  | ||||||
| arg_parser = argparse.ArgumentParser() | arg_parser = argparse.ArgumentParser() | ||||||
| arg_parser.add_argument('--download-dir', | arg_parser.add_argument('--download-dir', | ||||||
|                         help=f'Set the directory where downloaded files are cached (default: {default_download_dir})', |                         help=f'Set the directory where downloaded files are cached (default: ./(Win|Linux))', | ||||||
|                         default=default_download_dir, |                         default="", | ||||||
|                         type=pathlib.Path) |                         type=pathlib.Path) | ||||||
| 
 | 
 | ||||||
| arg_parser.add_argument('--install-dir', | arg_parser.add_argument('--install-dir', | ||||||
|                         help=f'Set the directory where downloaded files are installed (default: {default_install_dir})', |                         help=f'Set the directory where downloaded files are installed (default: ./Downloads)', | ||||||
|                         default=default_install_dir, |                         default="", | ||||||
|                         type=pathlib.Path) |                         type=pathlib.Path) | ||||||
| 
 | 
 | ||||||
| arg_parser.add_argument('--with-dev-apps', | arg_parser.add_argument('--with-dev-apps', | ||||||
| @ -57,9 +54,23 @@ arg_parser.add_argument('--with-user-apps', | |||||||
|                         const=True, |                         const=True, | ||||||
|                         action="store_const") |                         action="store_const") | ||||||
| 
 | 
 | ||||||
|  | arg_parser.add_argument('operating_system', | ||||||
|  |                         choices=['win', 'linux'], | ||||||
|  |                         help=f'Download and install apps for the specified operating system') | ||||||
|  | 
 | ||||||
| args         = arg_parser.parse_args() | args         = arg_parser.parse_args() | ||||||
| download_dir = args.download_dir | download_dir = args.download_dir | ||||||
| install_dir  = args.install_dir | install_dir  = args.install_dir | ||||||
|  | is_windows   = args.operating_system == 'win' | ||||||
|  | 
 | ||||||
|  | if download_dir == pathlib.Path(""): | ||||||
|  |     download_dir = devenver.script_dir / 'Downloads' | ||||||
|  | 
 | ||||||
|  | if install_dir == pathlib.Path(""): | ||||||
|  |     if is_windows: | ||||||
|  |         install_dir  = devenver.script_dir / 'Win' | ||||||
|  |     else: | ||||||
|  |         install_dir  = devenver.script_dir / 'Linux' | ||||||
| 
 | 
 | ||||||
| # Install development apps | # Install development apps | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| @ -67,13 +78,15 @@ if args.with_dev_apps: | |||||||
|     # Run DEVenver, installing the portable apps |     # Run DEVenver, installing the portable apps | ||||||
|     # -------------------------------------------------------------------------- |     # -------------------------------------------------------------------------- | ||||||
|     dev_env_script_name = "dev_env" |     dev_env_script_name = "dev_env" | ||||||
|     app_list            = win_app_manifest_dev.get_manifest() |     app_list            = win_app_manifest_dev.get_manifest(is_windows=is_windows) | ||||||
|     installed_dev_apps  = devenver.run(user_app_list=app_list, |     installed_dev_apps  = devenver.run(user_app_list=app_list, | ||||||
|                                        download_dir=download_dir, |                                        download_dir=download_dir, | ||||||
|                                        install_dir=install_dir, |                                        install_dir=install_dir, | ||||||
|                                        devenv_script_name=dev_env_script_name) |                                        devenv_script_name=dev_env_script_name, | ||||||
|  |                                        is_windows=is_windows) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |     if is_windows: | ||||||
|         # Install MSVC |         # Install MSVC | ||||||
|         # -------------------------------------------------------------------------- |         # -------------------------------------------------------------------------- | ||||||
|         devenver.print_header("Install MSVC & Windows 10 SDK") |         devenver.print_header("Install MSVC & Windows 10 SDK") | ||||||
| @ -192,29 +205,6 @@ if args.with_dev_apps: | |||||||
|         # subprocess.run(f"{git_exe} checkout {odin_git_hash}", |         # subprocess.run(f"{git_exe} checkout {odin_git_hash}", | ||||||
|         #                cwd=odin_install_dir) |         #                cwd=odin_install_dir) | ||||||
| 
 | 
 | ||||||
|     # Install left-overs |  | ||||||
|     # -------------------------------------------------------------------------- |  | ||||||
|     devenver.print_header("Install configuration files") |  | ||||||
| 
 |  | ||||||
|     # Copy init.vim to NVIM directory |  | ||||||
|     internal_dir          = pathlib.Path(os.path.dirname(os.path.abspath(__file__))) / "Internal" |  | ||||||
|     nvim_init_dir         = pathlib.Path(os.path.expanduser("~")) / "AppData" / "Local" / "nvim" |  | ||||||
|     nvim_config_dest_path = nvim_init_dir / "init.vim" |  | ||||||
|     nvim_config_src_path  = internal_dir  / "os_nvim_init.vim" |  | ||||||
| 
 |  | ||||||
|     devenver.lprint(f"Installing NVIM config to {nvim_config_dest_path}") |  | ||||||
|     nvim_init_dir.mkdir(parents=True, exist_ok=True) |  | ||||||
|     shutil.copy(nvim_config_src_path, nvim_config_dest_path) |  | ||||||
| 
 |  | ||||||
|     # Download vim.plug to NVIM init directory |  | ||||||
|     nvim_plug_vim_dir  = nvim_init_dir / "autoload" |  | ||||||
|     nvim_plug_vim_path = nvim_plug_vim_dir / "plug.vim" |  | ||||||
|     nvim_plug_vim_dir.mkdir(parents=True, exist_ok=True) |  | ||||||
|     if not os.path.exists(nvim_plug_vim_path): |  | ||||||
|         devenver.lprint(f"Installing NVIM plugin manager to {nvim_plug_vim_path}") |  | ||||||
|         urllib.request.urlretrieve("https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim", |  | ||||||
|                                    nvim_plug_vim_path) |  | ||||||
| 
 |  | ||||||
|         # Install clink configuration |         # Install clink configuration | ||||||
|         # -------------------------------------------------------------------------- |         # -------------------------------------------------------------------------- | ||||||
|         clink_profile_dir   = clink_base_dir / "profile" |         clink_profile_dir   = clink_base_dir / "profile" | ||||||
| @ -392,11 +382,42 @@ set PYTHONHOME=%~dp0{python_install_dir} | |||||||
| pause | pause | ||||||
| """) | """) | ||||||
| 
 | 
 | ||||||
|  |     # Install left-overs | ||||||
|  |     # -------------------------------------------------------------------------- | ||||||
|  |     devenver.print_header("Install configuration files") | ||||||
|  | 
 | ||||||
|  |     # Copy init.vim to NVIM directory | ||||||
|  |     internal_dir          = pathlib.Path(os.path.dirname(os.path.abspath(__file__))) / "Internal" | ||||||
|  |     nvim_init_dir         = "" | ||||||
|  | 
 | ||||||
|  |     if is_windows: | ||||||
|  |         nvim_init_dir = pathlib.Path(os.path.expanduser("~")) / "AppData" / "Local" / "nvim" | ||||||
|  |     else: | ||||||
|  |         nvim_init_dir = pathlib.Path(os.path.expanduser("~")) / ".config" / "nvim" | ||||||
|  | 
 | ||||||
|  |     nvim_config_dest_path = nvim_init_dir / "init.vim" | ||||||
|  |     nvim_config_src_path  = internal_dir  / "os_nvim_init.vim" | ||||||
|  | 
 | ||||||
|  |     devenver.lprint(f"Installing NVIM config to {nvim_config_dest_path}") | ||||||
|  |     nvim_init_dir.mkdir(parents=True, exist_ok=True) | ||||||
|  |     shutil.copy(nvim_config_src_path, nvim_config_dest_path) | ||||||
|  | 
 | ||||||
|  |     # Download vim.plug to NVIM init directory | ||||||
|  |     nvim_plug_vim_dir  = nvim_init_dir / "autoload" | ||||||
|  |     nvim_plug_vim_path = nvim_plug_vim_dir / "plug.vim" | ||||||
|  |     nvim_plug_vim_dir.mkdir(parents=True, exist_ok=True) | ||||||
|  |     if not os.path.exists(nvim_plug_vim_path): | ||||||
|  |         devenver.lprint(f"Installing NVIM plugin manager to {nvim_plug_vim_path}") | ||||||
|  |         urllib.request.urlretrieve("https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim", | ||||||
|  |                                    nvim_plug_vim_path) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # Install user apps | # Install user apps | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
| if args.with_user_apps: | if args.with_user_apps: | ||||||
|     app_list            = win_app_manifest_user.get_manifest() |     app_list            = win_app_manifest_user.get_manifest(is_windows=is_windows) | ||||||
|     installed_user_apps = devenver.run(user_app_list=app_list, |     installed_user_apps = devenver.run(user_app_list=app_list, | ||||||
|                                        download_dir=download_dir, |                                        download_dir=download_dir, | ||||||
|                                        install_dir=install_dir, |                                        install_dir=install_dir, | ||||||
|                                        devenv_script_name="user_env") |                                        devenv_script_name="user_env", | ||||||
|  |                                        is_windows=True) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user