Add user apps
This commit is contained in:
parent
82611b2d3b
commit
abc33563a4
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,4 +1,4 @@
|
|||||||
Docs
|
|
||||||
Downloads
|
Downloads
|
||||||
Home
|
__pycache__
|
||||||
Tools
|
Win
|
||||||
|
Docs
|
||||||
|
53
devenver.py
53
devenver.py
@ -321,15 +321,21 @@ 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':
|
if archive_path.suffix == '.zst' or archive_path.suffix == '.xz':
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
if os.path.exists(next_archive_path) == False:
|
if os.path.exists(next_archive_path) == False:
|
||||||
|
if archive_path.suffix == '.zst':
|
||||||
command = f'"{zstd_exe}" --output-dir-flat "{exe_install_dir}" -d "{archive_path}"'
|
command = f'"{zstd_exe}" --output-dir-flat "{exe_install_dir}" -d "{archive_path}"'
|
||||||
lprint(f'- zstd unzip {label} to: {exe_install_dir}', level=1)
|
lprint(f'- zstd unzip {label} to: {exe_install_dir}', level=1)
|
||||||
lprint(f' Command: {command}', level=1)
|
lprint(f' Command: {command}', level=1)
|
||||||
|
else:
|
||||||
|
command = f'"{zip7_exe}" x -aoa -spe -bso0 "{archive_path}" -o"{exe_install_dir}"'
|
||||||
|
command = command.replace('\\', '/')
|
||||||
|
lprint(f'- 7z unzip install {label} to: {exe_install_dir}', level=1)
|
||||||
|
lprint(f' Command: {command}', level=1)
|
||||||
|
|
||||||
os.makedirs(exe_install_dir)
|
os.makedirs(exe_install_dir)
|
||||||
subprocess.run(command)
|
subprocess.run(command)
|
||||||
@ -541,9 +547,7 @@ def validate_app_list(app_list):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
devenv_script_buffer = """@echo off
|
devenv_script_buffer = ""
|
||||||
|
|
||||||
"""
|
|
||||||
def install_app_list(app_list, download_dir, install_dir):
|
def install_app_list(app_list, download_dir, install_dir):
|
||||||
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)
|
||||||
@ -631,15 +635,16 @@ def install_app_list(app_list, download_dir, install_dir):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
script_dir = pathlib.Path(os.path.dirname(os.path.abspath(__file__)))
|
||||||
default_base_dir = script_dir
|
default_base_dir = script_dir
|
||||||
default_base_downloads_dir = os.path.join(default_base_dir, 'Downloads')
|
default_base_downloads_dir = default_base_dir / 'Downloads'
|
||||||
default_base_install_dir = os.path.join(default_base_dir, 'Install')
|
default_base_install_dir = default_base_dir / 'Install'
|
||||||
|
|
||||||
base_downloads_dir = default_base_downloads_dir
|
base_downloads_dir = default_base_downloads_dir
|
||||||
base_install_dir = default_base_install_dir
|
base_install_dir = default_base_install_dir
|
||||||
|
|
||||||
def run(user_app_list,
|
def run(user_app_list,
|
||||||
|
devenv_script_name,
|
||||||
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
|
||||||
@ -688,6 +693,11 @@ def run(user_app_list,
|
|||||||
if not os.path.isdir(path):
|
if not os.path.isdir(path):
|
||||||
exit(f'Path "{path}" is not a directory, script can not proceed. Exiting.')
|
exit(f'Path "{path}" is not a directory, script can not proceed. Exiting.')
|
||||||
|
|
||||||
|
global devenv_script_buffer
|
||||||
|
devenv_script_buffer = """@echo off
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
# Validate all the manifests before starting
|
# Validate all the manifests before starting
|
||||||
internal_app_validate_result = validate_app_list(internal_app_list)
|
internal_app_validate_result = validate_app_list(internal_app_list)
|
||||||
user_app_validate_result = validate_app_list(user_app_list)
|
user_app_validate_result = validate_app_list(user_app_list)
|
||||||
@ -702,10 +712,9 @@ def run(user_app_list,
|
|||||||
install_dir=install_dir)
|
install_dir=install_dir)
|
||||||
|
|
||||||
# Write the devenv script with environment variables
|
# Write the devenv script with environment variables
|
||||||
global devenv_script_buffer
|
|
||||||
devenv_script_buffer += "set PATH=%~dp0Symlinks;%PATH%\n"
|
devenv_script_buffer += "set PATH=%~dp0Symlinks;%PATH%\n"
|
||||||
|
|
||||||
devenv_script_name = "dev_env.bat" if IS_WINDOWS else "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:
|
||||||
@ -721,29 +730,3 @@ def run(user_app_list,
|
|||||||
result[key] += value
|
result[key] += value
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
|
|
||||||
# Arguments
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
arg_parser = argparse.ArgumentParser()
|
|
||||||
arg_parser.add_argument('--downloads-dir',
|
|
||||||
help=f'Set the directory where downloaded files are cached (default: {default_base_downloads_dir})',
|
|
||||||
default=default_base_downloads_dir,
|
|
||||||
type=pathlib.Path)
|
|
||||||
|
|
||||||
arg_parser.add_argument('--install-dir',
|
|
||||||
help=f'Set the directory where downloaded files are installed (default: {default_base_install_dir})',
|
|
||||||
default=default_base_install_dir,
|
|
||||||
type=pathlib.Path)
|
|
||||||
|
|
||||||
arg_parser.add_argument('--version',
|
|
||||||
action='version',
|
|
||||||
version='DEVenver v1')
|
|
||||||
|
|
||||||
args = arg_parser.parse_args()
|
|
||||||
base_downloads_dir = args.base_install_dir
|
|
||||||
base_install_dir = args.install_dir
|
|
||||||
|
|
||||||
run()
|
|
||||||
|
@ -1109,4 +1109,27 @@ def get_manifest():
|
|||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
version = "2.7.4"
|
||||||
|
result.append({
|
||||||
|
"label": "KeePassXC",
|
||||||
|
"manifests": [
|
||||||
|
{
|
||||||
|
"download_url": f"https://github.com/keepassxreboot/keepassxc/releases/download/{version}/KeePassXC-{version}-Win64.zip",
|
||||||
|
"download_checksum": "2ffb7a3289d008d3cd3ad0efffc3238d10a0ce176217d5e7bc34e1b59bcc644a",
|
||||||
|
"version": version,
|
||||||
|
"executables": [
|
||||||
|
{
|
||||||
|
"path": "KeePassXC.exe",
|
||||||
|
"symlink": [],
|
||||||
|
"add_to_devenv_path": False,
|
||||||
|
"checksum": "3102bb194dbc60e9ab4ba6c0024129893c8d845c1acf576aab0c05e607ef47ad",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"add_to_devenv_script": [],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
return result
|
return result
|
52
win_app_manifest_user.py
Normal file
52
win_app_manifest_user.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
def get_manifest():
|
||||||
|
result = []
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
version = "7.9.0"
|
||||||
|
result.append({
|
||||||
|
"label": "digiKam",
|
||||||
|
"manifests": [
|
||||||
|
{
|
||||||
|
"download_url": f"https://download.kde.org/stable/digikam/{version}/digiKam-{version}-Win64.tar.xz",
|
||||||
|
"download_checksum": "810476996461dc9275e97f1aa0438c77d0fe49f6ae5f6ae36fca983022dafe71",
|
||||||
|
"version": version,
|
||||||
|
"executables": [
|
||||||
|
{
|
||||||
|
"path": "digikam.exe",
|
||||||
|
"symlink": [],
|
||||||
|
"add_to_devenv_path": False,
|
||||||
|
"checksum": "aebabac51581c4a0a8fd6950c728d5b8a2306b7251e5f9b1987a437f3576d2c8",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"add_to_devenv_script": [],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
version = "0.25.0"
|
||||||
|
result.append({
|
||||||
|
"label": "PicoTorrent",
|
||||||
|
"manifests": [
|
||||||
|
{
|
||||||
|
"download_url": f"https://github.com/picotorrent/picotorrent/releases/download/v{version}/PicoTorrent-{version}-x64.zip",
|
||||||
|
"download_checksum": "375c2445db76b7d51b7cd351b1c5b40f895fb15b502da6073e19aaf6cb08cd76",
|
||||||
|
"version": version,
|
||||||
|
"executables": [
|
||||||
|
{
|
||||||
|
"path": "picotorrent.exe",
|
||||||
|
"symlink": [],
|
||||||
|
"add_to_devenv_path": False,
|
||||||
|
"checksum": "135adefb184d6a28d75b18fefebcd23e62005246664ff12f8af5687823630829",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"add_to_devenv_script": [],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return result
|
118
win_install.py
118
win_install.py
@ -6,9 +6,12 @@ import pathlib
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
import win_devenver_manifest
|
import argparse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
|
|
||||||
|
import win_app_manifest_dev
|
||||||
|
import win_app_manifest_user
|
||||||
|
|
||||||
def git_clone(install_dir, git_exe, url, commit_hash):
|
def git_clone(install_dir, git_exe, url, commit_hash):
|
||||||
devenver.lprint(f"Git clone {url} to {install_dir}", level=0)
|
devenver.lprint(f"Git clone {url} to {install_dir}", level=0)
|
||||||
# Clone repository if it does not exist
|
# Clone repository if it does not exist
|
||||||
@ -28,20 +31,53 @@ def git_clone(install_dir, git_exe, url, commit_hash):
|
|||||||
subprocess.run(f"{git_exe} pull origin master", cwd=install_dir)
|
subprocess.run(f"{git_exe} pull origin master", cwd=install_dir)
|
||||||
subprocess.run(f"{git_exe} checkout {commit_hash}", cwd=install_dir)
|
subprocess.run(f"{git_exe} checkout {commit_hash}", cwd=install_dir)
|
||||||
|
|
||||||
# Run DEVenver, installing the portable apps
|
# Arguments
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
download_dir = pathlib.Path(os.path.join(devenver.script_dir, 'Downloads'))
|
default_download_dir = devenver.script_dir / 'Downloads'
|
||||||
install_dir = pathlib.Path(os.path.join(devenver.script_dir, 'Win'))
|
default_install_dir = devenver.script_dir / 'Win'
|
||||||
|
|
||||||
user_app_list = win_devenver_manifest.get_manifest()
|
arg_parser = argparse.ArgumentParser()
|
||||||
installed_apps = devenver.run(user_app_list=user_app_list,
|
arg_parser.add_argument('--download-dir',
|
||||||
|
help=f'Set the directory where downloaded files are cached (default: {default_download_dir})',
|
||||||
|
default=default_download_dir,
|
||||||
|
type=pathlib.Path)
|
||||||
|
|
||||||
|
arg_parser.add_argument('--install-dir',
|
||||||
|
help=f'Set the directory where downloaded files are installed (default: {default_install_dir})',
|
||||||
|
default=default_install_dir,
|
||||||
|
type=pathlib.Path)
|
||||||
|
|
||||||
|
arg_parser.add_argument('--with-dev-apps',
|
||||||
|
help=f'Download and install apps from the developer manifest',
|
||||||
|
const=True,
|
||||||
|
action="store_const")
|
||||||
|
|
||||||
|
arg_parser.add_argument('--with-user-apps',
|
||||||
|
help=f'Download and install apps from the user manifest',
|
||||||
|
const=True,
|
||||||
|
action="store_const")
|
||||||
|
|
||||||
|
args = arg_parser.parse_args()
|
||||||
|
download_dir = args.download_dir
|
||||||
|
install_dir = args.install_dir
|
||||||
|
|
||||||
|
# Install development apps
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
if args.with_dev_apps:
|
||||||
|
# Run DEVenver, installing the portable apps
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
dev_env_script_name = "dev_env"
|
||||||
|
app_list = win_app_manifest_dev.get_manifest()
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
# Install MSVC
|
# Install MSVC
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
devenver.print_header("Install MSVC & Windows 10 SDK")
|
devenver.print_header("Install MSVC & Windows 10 SDK")
|
||||||
msvc_script = pathlib.Path(devenver.script_dir, "win_portable_msvc.py")
|
msvc_script = devenver.script_dir / "win_portable_msvc.py"
|
||||||
msvc_version = "14.34"
|
msvc_version = "14.34"
|
||||||
win10_sdk_version = "22621"
|
win10_sdk_version = "22621"
|
||||||
|
|
||||||
@ -115,13 +151,13 @@ if msvc_installed == False or win10_sdk_installed == False:
|
|||||||
devenver.lprint(f"MSVC {msvc_version} Windows 10 SDK {win10_sdk_version} installed: {msvc_install_dir}")
|
devenver.lprint(f"MSVC {msvc_version} Windows 10 SDK {win10_sdk_version} installed: {msvc_install_dir}")
|
||||||
|
|
||||||
# Install apps dependent on Git
|
# Install apps dependent on Git
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
devenver.print_header("Install apps that rely on Git")
|
devenver.print_header("Install apps that rely on Git")
|
||||||
git_exe = installed_apps["Git"][0]['exe_path']
|
git_exe = installed_dev_apps["Git"][0]['exe_path']
|
||||||
|
|
||||||
# Clink
|
# Clink
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
clink_install_dir = installed_apps["Clink"][0]['install_dir']
|
clink_install_dir = installed_dev_apps["Clink"][0]['install_dir']
|
||||||
clink_base_dir = clink_install_dir.parent
|
clink_base_dir = clink_install_dir.parent
|
||||||
|
|
||||||
# Gizmos
|
# Gizmos
|
||||||
@ -141,9 +177,9 @@ git_clone(install_dir=clink_completions_install_dir,
|
|||||||
commit_hash=clink_completions_git_hash)
|
commit_hash=clink_completions_git_hash)
|
||||||
|
|
||||||
# Odin
|
# Odin
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
odin_git_hash = "9ae1bfb6"
|
odin_git_hash = "9ae1bfb6"
|
||||||
odin_install_dir = pathlib.Path(install_dir, "Odin")
|
odin_install_dir = install_dir / "Odin"
|
||||||
git_clone(install_dir=odin_install_dir,
|
git_clone(install_dir=odin_install_dir,
|
||||||
git_exe=git_exe,
|
git_exe=git_exe,
|
||||||
url="https://github.com/odin-lang/odin.git",
|
url="https://github.com/odin-lang/odin.git",
|
||||||
@ -157,7 +193,7 @@ git_clone(install_dir=odin_install_dir,
|
|||||||
# cwd=odin_install_dir)
|
# cwd=odin_install_dir)
|
||||||
|
|
||||||
# Install left-overs
|
# Install left-overs
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
devenver.print_header("Install configuration files")
|
devenver.print_header("Install configuration files")
|
||||||
|
|
||||||
# Copy init.vim to NVIM directory
|
# Copy init.vim to NVIM directory
|
||||||
@ -180,7 +216,7 @@ if not os.path.exists(nvim_plug_vim_path):
|
|||||||
nvim_plug_vim_path)
|
nvim_plug_vim_path)
|
||||||
|
|
||||||
# Install clink configuration
|
# Install clink configuration
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
clink_profile_dir = clink_base_dir / "profile"
|
clink_profile_dir = clink_base_dir / "profile"
|
||||||
clink_settings_path = clink_profile_dir / "clink_settings"
|
clink_settings_path = clink_profile_dir / "clink_settings"
|
||||||
devenver.lprint(f"Installing clink_settings to: {clink_settings_path}")
|
devenver.lprint(f"Installing clink_settings to: {clink_settings_path}")
|
||||||
@ -225,8 +261,8 @@ fzf.default_bindings = True
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
# Install wezterm configuration
|
# Install wezterm configuration
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
wezterm_config_dest_path = installed_apps["WezTerm"][0]["install_dir"] / "wezterm.lua"
|
wezterm_config_dest_path = installed_dev_apps["WezTerm"][0]["install_dir"] / "wezterm.lua"
|
||||||
devenver.lprint(f"Installing WezTerm config to {wezterm_config_dest_path}")
|
devenver.lprint(f"Installing WezTerm config to {wezterm_config_dest_path}")
|
||||||
|
|
||||||
clink_exe_path = clink_install_dir.relative_to(install_dir) / "clink_x64.exe"
|
clink_exe_path = clink_install_dir.relative_to(install_dir) / "clink_x64.exe"
|
||||||
@ -241,7 +277,7 @@ local set_environment_variables = {{}}
|
|||||||
if wezterm.target_triple == "x86_64-pc-windows-msvc" then
|
if wezterm.target_triple == "x86_64-pc-windows-msvc" then
|
||||||
|
|
||||||
clink_exe = string.format("%s\\\\..\\\\..\\\\{clink_exe_path_for_wezterm}", wezterm.executable_dir)
|
clink_exe = string.format("%s\\\\..\\\\..\\\\{clink_exe_path_for_wezterm}", wezterm.executable_dir)
|
||||||
devenv_bat = string.format("%s\\\\..\\\\..\\\\dev_env.bat", wezterm.executable_dir)
|
devenv_bat = string.format("%s\\\\..\\\\..\\\\{dev_env_script_name}.bat", wezterm.executable_dir)
|
||||||
msvc_bat = string.format("%s\\\\..\\\\..\\\\msvc\\\\msvc-{msvc_version}.bat", wezterm.executable_dir)
|
msvc_bat = string.format("%s\\\\..\\\\..\\\\msvc\\\\msvc-{msvc_version}.bat", wezterm.executable_dir)
|
||||||
win10_sdk_bat = string.format("%s\\\\..\\\\..\\\\msvc\\\\win-sdk-{win10_sdk_version}.bat", wezterm.executable_dir)
|
win10_sdk_bat = string.format("%s\\\\..\\\\..\\\\msvc\\\\win-sdk-{win10_sdk_version}.bat", wezterm.executable_dir)
|
||||||
clink_profile = string.format("%s\\\\..\\\\..\\\\{clink_profile_path_for_wezterm}", wezterm.executable_dir)
|
clink_profile = string.format("%s\\\\..\\\\..\\\\{clink_profile_path_for_wezterm}", wezterm.executable_dir)
|
||||||
@ -267,7 +303,7 @@ return {{
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
# Wezterm super terminal
|
# Wezterm super terminal
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
wezterm_terminal_script_path = install_dir / "dev_terminal.bat"
|
wezterm_terminal_script_path = install_dir / "dev_terminal.bat"
|
||||||
devenver.lprint(f"Installing WezTerm terminal script to {wezterm_terminal_script_path}")
|
devenver.lprint(f"Installing WezTerm terminal script to {wezterm_terminal_script_path}")
|
||||||
|
|
||||||
@ -280,28 +316,28 @@ if "%~1" neq "" (
|
|||||||
set working_dir=!working_dir:\=/!
|
set working_dir=!working_dir:\=/!
|
||||||
)
|
)
|
||||||
|
|
||||||
start "" /MAX "%~dp0{installed_apps["WezTerm"][0]["exe_path"].relative_to(install_dir)}" !working_dir!
|
start "" /MAX "%~dp0{installed_dev_apps["WezTerm"][0]["exe_path"].relative_to(install_dir)}" !working_dir!
|
||||||
""")
|
""")
|
||||||
|
|
||||||
# Run background scripts helper
|
# Run background scripts helper
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
background_apps_script_path = pathlib.Path(install_dir, "dev_run_background_apps.bat")
|
background_apps_script_path = install_dir / "dev_run_background_apps.bat"
|
||||||
devenver.lprint(f"Installing run background script (helper) to {background_apps_script_path}")
|
devenver.lprint(f"Installing run background script (helper) to {background_apps_script_path}")
|
||||||
|
|
||||||
background_apps_script_path.write_text(f"""@echo off
|
background_apps_script_path.write_text(f"""@echo off
|
||||||
start "" "%~dp0{installed_apps["Everything"][0]["exe_path"].relative_to(install_dir)}"
|
start "" "%~dp0{installed_dev_apps["Everything"][0]["exe_path"].relative_to(install_dir)}"
|
||||||
|
|
||||||
REM Ensure that eyes-thanks creates their portable INI file in the correct directory
|
REM Ensure that eyes-thanks creates their portable INI file in the correct directory
|
||||||
pushd "%~dp0{installed_apps["Eyes-Thanks"][0]["install_dir"].parent.relative_to(install_dir)}"
|
pushd "%~dp0{installed_dev_apps["Eyes-Thanks"][0]["install_dir"].parent.relative_to(install_dir)}"
|
||||||
start "" "%~dp0{installed_apps["Eyes-Thanks"][0]["exe_path"].relative_to(install_dir)}"
|
start "" "%~dp0{installed_dev_apps["Eyes-Thanks"][0]["exe_path"].relative_to(install_dir)}"
|
||||||
popd
|
popd
|
||||||
|
|
||||||
start "" "%~dp0{installed_apps["ShareX"][0]["exe_path"].relative_to(install_dir)}"
|
start "" "%~dp0{installed_dev_apps["ShareX"][0]["exe_path"].relative_to(install_dir)}"
|
||||||
start "" "%~dp0{installed_apps["SpeedCrunch"][0]["exe_path"].relative_to(install_dir)}"
|
start "" "%~dp0{installed_dev_apps["SpeedCrunch"][0]["exe_path"].relative_to(install_dir)}"
|
||||||
""")
|
""")
|
||||||
|
|
||||||
# Create Odin work-around scripts
|
# Create Odin work-around scripts
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Odin uses J. Blow's Microsoft craziness SDK locator which relies on the
|
# Odin uses J. Blow's Microsoft craziness SDK locator which relies on the
|
||||||
# registry. Here we inject the registry entry that the SDK locator checks for
|
# registry. Here we inject the registry entry that the SDK locator checks for
|
||||||
# finding our portable MSVC installation.
|
# finding our portable MSVC installation.
|
||||||
@ -327,11 +363,11 @@ odin_msvc_uninstall_script_path.write_text(f"""Windows Registry Editor Version 5
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
# ------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# TODO: If I'm using the terminal that this script generates it will lock the
|
# TODO: If I'm using the terminal that this script generates it will lock the
|
||||||
# executable and Python cannot open the file for verifying the SHA256.
|
# executable and Python cannot open the file for verifying the SHA256.
|
||||||
|
|
||||||
python_exe_path = pathlib.Path(installed_apps["Python"][0]['exe_path'])
|
python_exe_path = pathlib.Path(installed_dev_apps["Python"][0]['exe_path'])
|
||||||
|
|
||||||
# PyNvim
|
# PyNvim
|
||||||
devenver.lprint(f"Installing PyNVIM")
|
devenver.lprint(f"Installing PyNVIM")
|
||||||
@ -345,6 +381,22 @@ win_setup_script_path = pathlib.Path(devenver.script_dir, "win_install.py")
|
|||||||
(install_dir / "dev_env_update.bat").write_text(f"""@echo off
|
(install_dir / "dev_env_update.bat").write_text(f"""@echo off
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
set PYTHONHOME=%~dp0{python_install_dir}
|
set PYTHONHOME=%~dp0{python_install_dir}
|
||||||
%~dp0{python_rel_exe_path} {win_setup_script_path}
|
%~dp0{python_rel_exe_path} {win_setup_script_path} --with-dev-apps
|
||||||
pause
|
pause
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
(install_dir / "user_env_update.bat").write_text(f"""@echo off
|
||||||
|
setlocal EnableDelayedExpansion
|
||||||
|
set PYTHONHOME=%~dp0{python_install_dir}
|
||||||
|
%~dp0{python_rel_exe_path} {win_setup_script_path} --with-user-apps
|
||||||
|
pause
|
||||||
|
""")
|
||||||
|
|
||||||
|
# Install user apps
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
if args.with_user_apps:
|
||||||
|
app_list = win_app_manifest_user.get_manifest()
|
||||||
|
installed_user_apps = devenver.run(user_app_list=app_list,
|
||||||
|
download_dir=download_dir,
|
||||||
|
install_dir=install_dir,
|
||||||
|
devenv_script_name="user_env")
|
||||||
|
Loading…
Reference in New Issue
Block a user