devenver: Add linux installation
This commit is contained in:
parent
844cb7e363
commit
05e7fdddf1
@ -464,13 +464,13 @@ def get_manifest(is_windows):
|
||||
executables = [
|
||||
{
|
||||
"path": f"bin/clang++",
|
||||
"checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"checksum": "388be41dc565a891ced9e78da2e89a249ca9b9a26f71a3c912e8ba89585be89c",
|
||||
"symlink": [f"clang++-{version}"],
|
||||
"add_to_devenv_path": True,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"checksum": "none",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "388be41dc565a891ced9e78da2e89a249ca9b9a26f71a3c912e8ba89585be89c",
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": True,
|
||||
}
|
||||
@ -505,17 +505,17 @@ def get_manifest(is_windows):
|
||||
else:
|
||||
version = "14.0.0" # Only version with linux downloads
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-18.04.tar.xz"
|
||||
download_checksum = "none"
|
||||
download_checksum = "61582215dafafb7b576ea30cc136be92c877ba1f1c31ddbbd372d6d65622fef5"
|
||||
executables = [
|
||||
{
|
||||
"path": f"bin/clang++",
|
||||
"checksum": "none",
|
||||
"checksum": "3557c2deadae7e2bc3bffce4afd93ddab6ef50090971c8ce3bf15c80b27134a0",
|
||||
"symlink": [f"clang++-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"checksum": "none",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "3557c2deadae7e2bc3bffce4afd93ddab6ef50090971c8ce3bf15c80b27134a0",
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
}
|
||||
@ -548,18 +548,18 @@ def get_manifest(is_windows):
|
||||
}
|
||||
]
|
||||
else:
|
||||
download_checksum = "none"
|
||||
download_checksum = "84a54c69781ad90615d1b0276a83ff87daaeded99fbc64457c350679df7b4ff0"
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-18.04.tar.xz"
|
||||
executables = [
|
||||
{
|
||||
"path": f"bin/clang++",
|
||||
"checksum": "none",
|
||||
"checksum": "ae47e6cc9f6d95f7a39e4800e511b7bdc3f55464ca79e45cd63cbd8a862a82a1",
|
||||
"symlink": [f"clang++-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"checksum": "none",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "ae47e6cc9f6d95f7a39e4800e511b7bdc3f55464ca79e45cd63cbd8a862a82a1",
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
}
|
||||
@ -585,25 +585,25 @@ def get_manifest(is_windows):
|
||||
"add_to_devenv_path": False,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "9f0748de7f946c210a030452de226986bab46a0121d7236ea0e7b5079cb6dfef",
|
||||
"symlink": [f"clang-{version}.exe"],
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
}
|
||||
]
|
||||
else:
|
||||
download_checksum = "none"
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-18.04.tar.xz"
|
||||
download_checksum = "6b3cc55d3ef413be79785c4dc02828ab3bd6b887872b143e3091692fc6acefe7"
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-16.04.tar.xz"
|
||||
executables = [
|
||||
{
|
||||
"path": f"bin/clang++",
|
||||
"checksum": "none",
|
||||
"checksum": "329bba976c0cef38863129233a4b0939688eae971c7a606d41dd0e5a53d53455",
|
||||
"symlink": [f"clang++-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"checksum": "none",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "329bba976c0cef38863129233a4b0939688eae971c7a606d41dd0e5a53d53455",
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
}
|
||||
@ -636,18 +636,18 @@ def get_manifest(is_windows):
|
||||
}
|
||||
]
|
||||
else:
|
||||
download_checksum = "none"
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-18.04.tar.xz"
|
||||
download_checksum = "c691a558967fb7709fb81e0ed80d1f775f4502810236aa968b4406526b43bee1"
|
||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/clang+llvm-{version}-x86_64-linux-gnu-ubuntu-16.04.tar.xz"
|
||||
executables = [
|
||||
{
|
||||
"path": f"bin/clang++",
|
||||
"checksum": "none",
|
||||
"checksum": "656bfde194276cee81dc8a7a08858313c5b5bdcfa18ac6cd6116297af2f65148",
|
||||
"symlink": [f"clang++-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
},
|
||||
{
|
||||
"path": f"bin/clang.exe",
|
||||
"checksum": "none",
|
||||
"path": f"bin/clang",
|
||||
"checksum": "656bfde194276cee81dc8a7a08858313c5b5bdcfa18ac6cd6116297af2f65148",
|
||||
"symlink": [f"clang-{version}"],
|
||||
"add_to_devenv_path": False,
|
||||
}
|
||||
@ -676,8 +676,8 @@ def get_manifest(is_windows):
|
||||
exe_path = "ninja.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/ninja-build/ninja/releases/download/v{version}/ninja-linux.zip"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_checksum = "b901ba96e486dce377f9a070ed4ef3f79deb45f4ffe2938f8e7ddc69cfb3df77"
|
||||
checksum = "ac35c7992e95c5f2cadb44097d9988bcc71e5e39d9908ec312eb46872844f2e8"
|
||||
exe_path = "ninja"
|
||||
|
||||
result.append({
|
||||
@ -717,9 +717,9 @@ def get_manifest(is_windows):
|
||||
symlink = [f"node-{version}.exe"]
|
||||
else:
|
||||
download_url = f"https://nodejs.org/dist/v{version}/node-v{version}-linux-x64.tar.xz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
exe_path = "node"
|
||||
download_checksum = "c88b52497ab38a3ddf526e5b46a41270320409109c3f74171b241132984fd08f"
|
||||
checksum = "45afcfc9a45df626e8aa2b883753d1cf7f222ad9243f3003d1aa372696120df6"
|
||||
exe_path = "bin/node"
|
||||
symlink = [f"node-{version}"]
|
||||
|
||||
result.append({
|
||||
@ -764,29 +764,31 @@ def get_manifest(is_windows):
|
||||
]
|
||||
else:
|
||||
download_url = f"https://github.com/indygreg/python-build-standalone/releases/download/{date}/cpython-{version}-x86_64_v2-unknown-linux-gnu-pgo+lto-full.tar.zst"
|
||||
download_checksum = "none"
|
||||
download_checksum = "49f4a8c02efff2debbb258973b1f6efbd568e4be2e5dca07c7dcd754a7bff9cf"
|
||||
checksum = "none"
|
||||
exe_path = "bin/python"
|
||||
|
||||
result.append({
|
||||
"label": label,
|
||||
"manifests": [
|
||||
{
|
||||
"download_checksum": download_checksum,
|
||||
"download_url": download_url,
|
||||
"version": version,
|
||||
"executables": [
|
||||
{
|
||||
"path": exe_path,
|
||||
"symlink": [],
|
||||
"add_to_devenv_path": True,
|
||||
"checksum": checksum,
|
||||
}
|
||||
],
|
||||
"add_to_devenv_script": add_to_devenv_script,
|
||||
}
|
||||
],
|
||||
})
|
||||
# TODO: Get ZST somehow on linux
|
||||
if is_windows:
|
||||
result.append({
|
||||
"label": label,
|
||||
"manifests": [
|
||||
{
|
||||
"download_checksum": download_checksum,
|
||||
"download_url": download_url,
|
||||
"version": version,
|
||||
"executables": [
|
||||
{
|
||||
"path": exe_path,
|
||||
"symlink": [],
|
||||
"add_to_devenv_path": True,
|
||||
"checksum": checksum,
|
||||
}
|
||||
],
|
||||
"add_to_devenv_script": add_to_devenv_script,
|
||||
}
|
||||
],
|
||||
})
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
@ -803,8 +805,8 @@ def get_manifest(is_windows):
|
||||
exe_path = "qrenderdoc.exe"
|
||||
else:
|
||||
download_url = f"https://renderdoc.org/stable/{version}/renderdoc_{version}.tar.gz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_checksum = "fbdf67131ade655a7e635aa34e8b6fcd1aac9d88ebbe7d3da39fb075e05b1f41"
|
||||
checksum = "00508f6532f73a38873b92777fa8b7fb317c0b5f411fb50d2722823027993252"
|
||||
exe_path = "bin/qrenderdoc"
|
||||
|
||||
result.append({
|
||||
@ -867,9 +869,9 @@ def get_manifest(is_windows):
|
||||
exe_path = "zig.exe"
|
||||
symlink = [f"zig-{version}.exe"]
|
||||
else:
|
||||
download_url = f"https://ziglang.org/download/{version}/zig-linux-x86_64-{version}.zip"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_url = f"https://ziglang.org/download/{version}/zig-linux-x86_64-{version}.tar.xz"
|
||||
download_checksum = "6699f0e7293081b42428f32c9d9c983854094bd15fee5489f12c4cf4518cc380"
|
||||
checksum = "b298cd869e11709b9c7a1313315b5ea2a9d8a0718f555c6990ee209d7c533442"
|
||||
exe_path = "zig"
|
||||
symlink = [f"zig-{version}"]
|
||||
|
||||
@ -983,8 +985,8 @@ def get_manifest(is_windows):
|
||||
symlink = [f"fzf.exe"]
|
||||
else:
|
||||
download_url = f"https://github.com/junegunn/fzf/releases/download/{version}/fzf-{version}-linux_amd64.tar.gz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_checksum = "ffa3220089f2ed6ddbef2d54795e49f46467acfadd4ad0d22c5f07c52dc0d4ab"
|
||||
checksum = "6475c41e56d949da753782fef56017657b77846f23e71fca88378e3f55c1d6d0"
|
||||
exe_path = "fzf"
|
||||
symlink = [f"fzf"]
|
||||
|
||||
@ -1073,7 +1075,7 @@ def get_manifest(is_windows):
|
||||
exe_path = "nvim.appimage"
|
||||
download_url = f"https://github.com/neovim/neovim/releases/download/v{version}/{exe_path}"
|
||||
download_checksum = "bb0d4599cb506fc6e29bf0e9cef3b52e06dcb4bb930b56d6eb88320f1d46a908"
|
||||
checksum = "none"
|
||||
checksum = download_checksum
|
||||
|
||||
result.append({
|
||||
"label": "NVim",
|
||||
@ -1110,8 +1112,8 @@ def get_manifest(is_windows):
|
||||
exe_path = "neovide.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/neovide/neovide/releases/download/{version}/neovide.tar.gz"
|
||||
download_checksum = "fc0593a0f55e99fa8398e8137ac89632ea7fc97a90cbd32d8c2a69afc1eff6f"
|
||||
checksum = "none"
|
||||
download_checksum = "0fc0593a0f55e99fa8398e8137ac89632ea7fc97a90cbd32d8c2a69afc1eff6f"
|
||||
checksum = "73c8dc6cb9840f568663d532d12ae54109af690866a51011cc1f874e2ae308e2"
|
||||
exe_path = "neovide"
|
||||
|
||||
result.append({
|
||||
@ -1148,10 +1150,10 @@ def get_manifest(is_windows):
|
||||
checksum = "ddd448c0d8fe71295bbcc5b52c9e9f4b06956a79572b7d634436a49728f5f341"
|
||||
exe_path = "imhex.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/WerWolv/ImHex/releases/download/v{version}/imhex-{version}.AppImage"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
exe_path = "imhex-{version}.AppImage"
|
||||
exe_path = f"imhex-{version}.AppImage"
|
||||
download_url = f"https://github.com/WerWolv/ImHex/releases/download/v{version}/{exe_path}"
|
||||
download_checksum = "229d7f2f36dca0d4aa2eeb4f637114ffa94db7d67db74b34ed7eda34d72e4bed"
|
||||
checksum = download_checksum
|
||||
|
||||
result.append({
|
||||
"label": "ImHex",
|
||||
@ -1237,7 +1239,7 @@ def get_manifest(is_windows):
|
||||
else:
|
||||
download_url = f"https://github.com/BurntSushi/ripgrep/releases/download/{version}/ripgrep-{version}-x86_64-unknown-linux-musl.tar.gz"
|
||||
download_checksum = "ee4e0751ab108b6da4f47c52da187d5177dc371f0f512a7caaec5434e711c091"
|
||||
checksum = "none"
|
||||
checksum = "4ef156371199b3ddac1bf584e0e52b1828279af82e4ea864b4d9c816adb5db40"
|
||||
exe_path = "rg"
|
||||
|
||||
result.append({
|
||||
@ -1275,9 +1277,9 @@ def get_manifest(is_windows):
|
||||
exe_path = "sioyek.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/ahrm/sioyek/releases/download/v{version}/sioyek-release-linux-portable.zip"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
exe_path = "sioyek"
|
||||
download_checksum = "3f90659c1f29705de680b3607ae247582eab8860015c208d364a0f3fc15d3222"
|
||||
checksum = "7abc12e8fe71b0285e067866bcea2ea0e025e37291f6bce450675a567172e44f"
|
||||
exe_path = "Sioyek-x86_64.AppImage"
|
||||
|
||||
result.append({
|
||||
"label": "Sioyek",
|
||||
@ -1318,9 +1320,9 @@ def get_manifest(is_windows):
|
||||
"set FZF_DEFAULT_COMMAND=fd --type f --strip-cwd-prefix --hidden --follow --exclude .git --exclude .cache --exclude .vs",
|
||||
]
|
||||
else:
|
||||
download_url = f"https://github.com/sharkdp/fd/releases/download/v{version}/fd-v{version}-x86_64-pc-unknown-linux-musl.tar.gz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_url = f"https://github.com/sharkdp/fd/releases/download/v{version}/fd-v{version}-x86_64-unknown-linux-musl.tar.gz"
|
||||
download_checksum = "9fdb370648fb8256fc9a36355c652546bd4c62925babcad80f95f90f74fc81e7"
|
||||
checksum = "702eb951e6b37be64cca66da976e0fcb0be587121034c1d6f841ce7fad3bd8e3"
|
||||
exe_path = "fd"
|
||||
add_to_devenv_script = [
|
||||
"FZF_DEFAULT_OPTS=--multi --layout=reverse",
|
||||
@ -1434,7 +1436,7 @@ def get_manifest(is_windows):
|
||||
checksum = "12d62abb9ad4db43c2b9b1398acae66857eb6e64205364631a3d3bda0ff17e2e"
|
||||
exe_path = "ripcord.exe"
|
||||
else:
|
||||
exe_path = "Ripcord-{version}-x86_64.AppImage"
|
||||
exe_path = f"Ripcord-{version}-x86_64.AppImage"
|
||||
download_url = f"https://cancel.fm/dl/{exe_path}"
|
||||
download_checksum = "e320cb3c4043b0f296b4bc1da664b29776f95c2c0b02bdbf115b4d46b1669899"
|
||||
checksum = download_checksum
|
||||
@ -1498,7 +1500,7 @@ def get_manifest(is_windows):
|
||||
exe_path = "yt-dlp.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/yt-dlp/yt-dlp/releases/download/{version}/yt-dlp_linux"
|
||||
download_checksum = "none"
|
||||
download_checksum = "3b2d1bd378e08570b0fb5bee000cd6968563c4f47527197a5c57463bae8cb2ac"
|
||||
checksum = download_checksum
|
||||
exe_path = "yt-dlp_linux"
|
||||
|
||||
@ -1538,7 +1540,7 @@ def get_manifest(is_windows):
|
||||
else:
|
||||
download_url = f"https://bitbucket.org/heldercorreia/speedcrunch/downloads/SpeedCrunch-{version}-linux64.tar.bz2"
|
||||
download_checksum = "9347bef2068053ad15c5914ee147bf11a1ccb1d30cb18d63d0178380c327e8fc"
|
||||
checksum = "none"
|
||||
checksum = "06c7e7f68027f133dc7874f663873244b695c8a7d2aec9cde0e40b7a5b9a4db1"
|
||||
exe_path = "speedcrunch"
|
||||
|
||||
result.append({
|
||||
@ -1577,8 +1579,8 @@ def get_manifest(is_windows):
|
||||
else:
|
||||
exe_path = f"KeePassXC-{version}-x86_64.AppImage"
|
||||
download_url = f"https://github.com/keepassxreboot/keepassxc/releases/download/{version}/{exe_path}"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
download_checksum = "15fdc15f340e84e3b7a25a19bfb8c3b16f1e04685c07e5de1616b7cd6bcdded6"
|
||||
checksum = download_checksum
|
||||
|
||||
result.append({
|
||||
"label": "KeePassXC",
|
105
devenver.py
105
devenver.py
@ -222,18 +222,19 @@ def download_and_install_archive(download_url,
|
||||
# Install the archive by unpacking it
|
||||
# ----------------------------------------------------------------------
|
||||
archive_path = download_path
|
||||
os.makedirs(exe_install_dir, exist_ok=True)
|
||||
|
||||
if unzip_method == UnzipMethod.DEFAULT:
|
||||
if archive_path.suffix == '.exe' or archive_path.suffix == '.AppImage':
|
||||
if archive_path.suffix == '.exe' or archive_path.suffix.lower() == '.appimage' or len(archive_path.suffix) == 0:
|
||||
unzip_method = UnzipMethod.NO_UNZIP
|
||||
|
||||
if unzip_method == UnzipMethod.NO_UNZIP:
|
||||
os.makedirs(exe_install_dir, exist_ok=True)
|
||||
shutil.copy(archive_path, exe_install_dir)
|
||||
elif unzip_method == UnzipMethod.SHUTILS:
|
||||
lprint(f'- SHUtils unzip install {label} to: {exe_install_dir}', level=1)
|
||||
shutil.unpack_archive(download_path, exe_install_dir)
|
||||
elif unzip_method == UnzipMethod.ZIP7_BOOTSTRAP:
|
||||
command = f'"{zip7_bootstrap_exe}" x -bd "{download_path}" -o"{exe_install_dir}"'
|
||||
command = [str(zip7_bootstrap_exe), "x", "-bd", str(download_path), "-o", str(exe_install_dir)]
|
||||
lprint(f'- 7z (bootstrap) unzip {label} to: {exe_install_dir}', level=1)
|
||||
lprint(f' Command: {command}', level=1)
|
||||
subprocess.run(command)
|
||||
@ -252,37 +253,49 @@ def download_and_install_archive(download_url,
|
||||
# We call this an intermediate zip file, we will extract that file
|
||||
# with 7zip. After we're done, we will delete that _intermediate_
|
||||
# file to cleanup our install directory.
|
||||
if archive_path.suffix == '.zst' or archive_path.suffix == '.xz' or archive_path.suffix == '.gz':
|
||||
unzip_command = [str(zip7_exe), "x", "-aoa", "-spe", "-bso0", str(archive_path), f"-o{exe_install_dir}"]
|
||||
|
||||
linux_used_tar = False
|
||||
if archive_path.suffix == '.zst' or archive_path.suffix == '.xz' or archive_path.suffix == '.gz' or archive_path.suffix == '.bz2':
|
||||
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:
|
||||
command = ""
|
||||
if archive_path.suffix == '.zst':
|
||||
command = f'"{zstd_exe}" --output-dir-flat "{exe_install_dir}" -d "{archive_path}"'
|
||||
command = [str(zstd_exe), "--output-dir-flat", str(exe_install_dir), "-d", str(archive_path)]
|
||||
lprint(f'- zstd unzip {label} to: {exe_install_dir}', 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)
|
||||
if not is_windows:
|
||||
linux_used_tar = True
|
||||
unzip_command = ["tar", "xf", str(archive_path), "--directory", str(exe_install_dir)]
|
||||
|
||||
os.makedirs(exe_install_dir)
|
||||
subprocess.run(command)
|
||||
command = unzip_command
|
||||
for item in command:
|
||||
item = item.replace('\\', '/')
|
||||
lprint(f'- Unzip nested install {label} to: {exe_install_dir}', level=1)
|
||||
|
||||
lprint(f' Command: {command}', level=1)
|
||||
subprocess.run(args=command)
|
||||
|
||||
# Remove the extension from the file, we just extracted it
|
||||
archive_path = next_archive_path
|
||||
|
||||
# If there's still a suffix after we removed the ".zst" we got
|
||||
# an additional archive to unzip, e.g. "app.tar" remaining.
|
||||
intermediate_zip_file_extracted = len(archive_path.suffix) > 0
|
||||
if not linux_used_tar:
|
||||
intermediate_zip_file_extracted = len(archive_path.suffix) > 0
|
||||
|
||||
# \note On Linux using tar xf will unpack the archive entirely, e.g.
|
||||
# unpack tar.gz both in one shot. So we do not need a further
|
||||
# extract step.
|
||||
if not linux_used_tar and len(archive_path.suffix) > 0:
|
||||
unzip_command = [str(zip7_exe), "x", "-aoa", "-spe", "-bso0", str(archive_path), f"-o{exe_install_dir}"]
|
||||
command = unzip_command
|
||||
for item in command:
|
||||
item = item.replace('\\', '/')
|
||||
|
||||
if len(archive_path.suffix) > 0:
|
||||
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'- Unzip install {label} to: {exe_install_dir}', level=1)
|
||||
lprint(f' Command: {command}', level=1)
|
||||
subprocess.run(command)
|
||||
|
||||
@ -528,7 +541,7 @@ def install_app_list(app_list, download_dir, install_dir, is_windows):
|
||||
unzip_method = UnzipMethod.ZIP7_BOOTSTRAP
|
||||
zip7_exe = exe_path
|
||||
else:
|
||||
unzip_method = UnzipMethod.ZIP7_SHUTILS
|
||||
unzip_method = UnzipMethod.SHUTILS
|
||||
zip7_exe = exe_path
|
||||
zip7_bootstrap_exe = exe_path
|
||||
elif label == 'zstd':
|
||||
@ -571,7 +584,7 @@ def install_app_list(app_list, download_dir, install_dir, is_windows):
|
||||
for line in manifest['add_to_devenv_script']:
|
||||
devenv_script_buffer += (line + '\n')
|
||||
|
||||
if app_list is internal_app_list:
|
||||
if (is_windows or os.name == 'nt') and app_list is internal_app_list:
|
||||
if len(str(zip7_exe)) == 0 or len(str(zip7_bootstrap_exe)) == 0 or len(str(zstd_exe)) == 0:
|
||||
exit("Internal app list did not install 7zip bootstrap, 7zip or zstd, we are unable to install archives\n"
|
||||
f" - zip7_bootstrap_exe: {zip7_bootstrap_exe}\n"
|
||||
@ -655,11 +668,12 @@ def run(user_app_list,
|
||||
download_checksum = "b055fee85472921575071464a97a79540e489c1c3a14b9bdfbdbab60e17f36e4"
|
||||
checksum = "254cf6411d38903b2440819f7e0a847f0cfee7f8096cfad9e90fea62f42b0c23"
|
||||
exe_path = "7z.exe"
|
||||
|
||||
else:
|
||||
download_url = f"https://www.7-zip.org/a/7z{version}-linux-x64.tar.xz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
exe_path = "7z"
|
||||
download_checksum = "2c266f6794adec310c4631232c1d039f46988d51082fe5e80349c52ee7ed60bb"
|
||||
checksum = "0c771994a00ee96a0fc85902f66fbfd162c3090091e523bb828cdf4cd09a2e73"
|
||||
exe_path = "7zz"
|
||||
|
||||
internal_app_list[-1]["manifests"].append({ # Download proper 7zip, extract this exe with the bootstrap 7zip
|
||||
"download_checksum": download_checksum,
|
||||
@ -689,31 +703,26 @@ def run(user_app_list,
|
||||
download_checksum = "68897cd037ee5e44c6d36b4dbbd04f1cc4202f9037415a3251951b953a257a09"
|
||||
checksum = "f14e78c0651851a670f508561d2c5d647da0ba08e6b73231f2e7539812bae311"
|
||||
exe_path = "zstd.exe"
|
||||
else:
|
||||
download_url = f"https://github.com/facebook/zstd/releases/download/v{version}/zstd-{version}.tar.gz"
|
||||
download_checksum = "none"
|
||||
checksum = "none"
|
||||
exe_path = "zstd"
|
||||
|
||||
internal_app_list.append({
|
||||
"label": "zstd",
|
||||
"manifests": [
|
||||
{
|
||||
"download_checksum": download_checksum,
|
||||
"download_url": download_url,
|
||||
"version": version,
|
||||
"executables": [
|
||||
{
|
||||
"path": "zstd.exe",
|
||||
"symlink": [],
|
||||
"add_to_devenv_path": True,
|
||||
"checksum": checksum,
|
||||
},
|
||||
],
|
||||
"add_to_devenv_script": [],
|
||||
},
|
||||
],
|
||||
})
|
||||
internal_app_list.append({
|
||||
"label": "zstd",
|
||||
"manifests": [
|
||||
{
|
||||
"download_checksum": download_checksum,
|
||||
"download_url": download_url,
|
||||
"version": version,
|
||||
"executables": [
|
||||
{
|
||||
"path": exe_path,
|
||||
"symlink": [],
|
||||
"add_to_devenv_path": True,
|
||||
"checksum": checksum,
|
||||
},
|
||||
],
|
||||
"add_to_devenv_script": [],
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
# Run
|
||||
# --------------------------------------------------------------------------
|
||||
@ -763,7 +772,7 @@ def run(user_app_list,
|
||||
# Write the devenv script with environment variables
|
||||
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}.sh"
|
||||
devenv_script_path = pathlib.Path(install_dir, devenv_script_name)
|
||||
lprint(f"Writing script to augment the environment with installed applications: {devenv_script_path}")
|
||||
with open(devenv_script_path, 'w') as file:
|
||||
|
@ -9,8 +9,8 @@ import tempfile
|
||||
import argparse
|
||||
import urllib.request
|
||||
|
||||
import win_app_manifest_dev
|
||||
import win_app_manifest_user
|
||||
import app_manifest_dev
|
||||
import app_manifest_user
|
||||
|
||||
def git_clone(install_dir, git_exe, url, commit_hash):
|
||||
devenver.lprint(f"Git clone {url} to {install_dir}", level=0)
|
||||
@ -78,7 +78,7 @@ 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(is_windows=is_windows)
|
||||
app_list = app_manifest_dev.get_manifest(is_windows=is_windows)
|
||||
installed_dev_apps = devenver.run(user_app_list=app_list,
|
||||
download_dir=download_dir,
|
||||
install_dir=install_dir,
|
||||
@ -375,12 +375,12 @@ set PYTHONHOME=%~dp0{python_install_dir}
|
||||
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_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 left-overs
|
||||
# --------------------------------------------------------------------------
|
||||
@ -411,13 +411,12 @@ pause
|
||||
urllib.request.urlretrieve("https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim",
|
||||
nvim_plug_vim_path)
|
||||
|
||||
|
||||
# Install user apps
|
||||
# ------------------------------------------------------------------------------
|
||||
if args.with_user_apps:
|
||||
app_list = win_app_manifest_user.get_manifest(is_windows=is_windows)
|
||||
app_list = app_manifest_user.get_manifest(is_windows=is_windows)
|
||||
installed_user_apps = devenver.run(user_app_list=app_list,
|
||||
download_dir=download_dir,
|
||||
install_dir=install_dir,
|
||||
devenv_script_name="user_env",
|
||||
is_windows=True)
|
||||
is_windows=is_windows)
|
Loading…
Reference in New Issue
Block a user