Get it working on linux
This commit is contained in:
parent
acc5d57340
commit
844cb7e363
296
devenver.py
296
devenver.py
@ -126,6 +126,7 @@ class UnzipMethod(Enum):
|
|||||||
SHUTILS = 0
|
SHUTILS = 0
|
||||||
ZIP7_BOOTSTRAP = 1
|
ZIP7_BOOTSTRAP = 1
|
||||||
DEFAULT = 2
|
DEFAULT = 2
|
||||||
|
NO_UNZIP = 3
|
||||||
|
|
||||||
def get_exe_install_dir(install_dir, label, version_label):
|
def get_exe_install_dir(install_dir, label, version_label):
|
||||||
result = pathlib.Path(install_dir, label.replace(' ', '_'), version_label)
|
result = pathlib.Path(install_dir, label.replace(' ', '_'), version_label)
|
||||||
@ -184,7 +185,7 @@ def download_and_install_archive(download_url,
|
|||||||
for exe_dict in exes_are_not_a_file:
|
for exe_dict in exes_are_not_a_file:
|
||||||
lprint(f' {exe_dict["path"]}', level=1)
|
lprint(f' {exe_dict["path"]}', level=1)
|
||||||
lprint(f' Installation cannot proceed as unpacking would overwrite these paths', level=1)
|
lprint(f' Installation cannot proceed as unpacking would overwrite these paths', level=1)
|
||||||
return
|
exit()
|
||||||
|
|
||||||
# Check if any files are missing
|
# Check if any files are missing
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
@ -199,8 +200,7 @@ def download_and_install_archive(download_url,
|
|||||||
lprint(f'- {label} is installed but some of the expected executables are missing from the installation!', level=1)
|
lprint(f'- {label} is installed but some of the expected executables are missing from the installation!', level=1)
|
||||||
for exe_dict in exes_are_not_a_file:
|
for exe_dict in exes_are_not_a_file:
|
||||||
lprint(f' {exe_dict["path"]}', level=1)
|
lprint(f' {exe_dict["path"]}', level=1)
|
||||||
lprint(f' Installation cannot proceed as unpacking could delete ', level=1)
|
exit()
|
||||||
return
|
|
||||||
|
|
||||||
assert(len(exes_missing) == len(exe_list))
|
assert(len(exes_missing) == len(exe_list))
|
||||||
assert(len(exes_present) == 0)
|
assert(len(exes_present) == 0)
|
||||||
@ -221,75 +221,74 @@ def download_and_install_archive(download_url,
|
|||||||
|
|
||||||
# Install the archive by unpacking it
|
# Install the archive by unpacking it
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
if unzip_method == UnzipMethod.SHUTILS:
|
archive_path = download_path
|
||||||
|
if unzip_method == UnzipMethod.DEFAULT:
|
||||||
|
if archive_path.suffix == '.exe' or archive_path.suffix == '.AppImage':
|
||||||
|
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)
|
lprint(f'- SHUtils unzip install {label} to: {exe_install_dir}', level=1)
|
||||||
shutil.unpack_archive(download_path, exe_install_dir, 'zip')
|
shutil.unpack_archive(download_path, exe_install_dir)
|
||||||
else:
|
elif unzip_method == UnzipMethod.ZIP7_BOOTSTRAP:
|
||||||
command = ''
|
command = f'"{zip7_bootstrap_exe}" x -bd "{download_path}" -o"{exe_install_dir}"'
|
||||||
if unzip_method == UnzipMethod.ZIP7_BOOTSTRAP:
|
lprint(f'- 7z (bootstrap) unzip {label} to: {exe_install_dir}', level=1)
|
||||||
command = f'"{zip7_bootstrap_exe}" x -bd "{download_path}" -o"{exe_install_dir}"'
|
lprint(f' Command: {command}', level=1)
|
||||||
lprint(f'- 7z (bootstrap) unzip {label} to: {exe_install_dir}', level=1)
|
subprocess.run(command)
|
||||||
lprint(f' Command: {command}', level=1)
|
else: # Default
|
||||||
subprocess.run(command)
|
intermediate_zip_file_extracted = False
|
||||||
else:
|
|
||||||
archive_path = download_path
|
|
||||||
|
|
||||||
if archive_path.suffix == '.exe':
|
# We could have a "app.zst" situation or an "app.tar.zst" situation
|
||||||
os.makedirs(exe_install_dir, exist_ok=True)
|
#
|
||||||
shutil.copy(archive_path, exe_install_dir)
|
# "app.zst" only needs 1 extraction from the zstd tool
|
||||||
|
# "app.tar.zst" needs 1 zstd extract and then 1 7zip extract
|
||||||
|
#
|
||||||
|
# When we have "app.tar.zst" we extract to the install folder, e.g.
|
||||||
|
#
|
||||||
|
# "app/1.0/app.tar"
|
||||||
|
#
|
||||||
|
# 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':
|
||||||
|
|
||||||
else:
|
archive_without_suffix = pathlib.Path(str(archive_path)[:-len(archive_path.suffix)]).name
|
||||||
intermediate_zip_file_extracted = False
|
next_archive_path = pathlib.Path(exe_install_dir, archive_without_suffix)
|
||||||
|
|
||||||
# We could have a "app.zst" situation or an "app.tar.zst" situation
|
if os.path.exists(next_archive_path) == False:
|
||||||
#
|
if archive_path.suffix == '.zst':
|
||||||
# "app.zst" only needs 1 extraction from the zstd tool
|
command = f'"{zstd_exe}" --output-dir-flat "{exe_install_dir}" -d "{archive_path}"'
|
||||||
# "app.tar.zst" needs 1 zstd extract and then 1 7zip extract
|
lprint(f'- zstd unzip {label} to: {exe_install_dir}', level=1)
|
||||||
#
|
lprint(f' Command: {command}', level=1)
|
||||||
# When we have "app.tar.zst" we extract to the install folder, e.g.
|
else:
|
||||||
#
|
|
||||||
# "app/1.0/app.tar"
|
|
||||||
#
|
|
||||||
# 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':
|
|
||||||
|
|
||||||
archive_without_suffix = pathlib.Path(str(archive_path)[:-len(archive_path.suffix)]).name
|
|
||||||
next_archive_path = pathlib.Path(exe_install_dir, archive_without_suffix)
|
|
||||||
|
|
||||||
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}"'
|
|
||||||
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)
|
|
||||||
|
|
||||||
os.makedirs(exe_install_dir)
|
|
||||||
subprocess.run(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 len(archive_path.suffix) > 0:
|
|
||||||
command = f'"{zip7_exe}" x -aoa -spe -bso0 "{archive_path}" -o"{exe_install_dir}"'
|
command = f'"{zip7_exe}" x -aoa -spe -bso0 "{archive_path}" -o"{exe_install_dir}"'
|
||||||
command = command.replace('\\', '/')
|
command = command.replace('\\', '/')
|
||||||
lprint(f'- 7z unzip install {label} to: {exe_install_dir}', level=1)
|
lprint(f'- 7z unzip install {label} to: {exe_install_dir}', level=1)
|
||||||
lprint(f' Command: {command}', level=1)
|
lprint(f' Command: {command}', level=1)
|
||||||
subprocess.run(command)
|
|
||||||
|
|
||||||
if intermediate_zip_file_extracted:
|
os.makedirs(exe_install_dir)
|
||||||
lprint(f'- Detected intermediate zip file in install root, removing: {archive_path}', level=1)
|
subprocess.run(command)
|
||||||
os.remove(archive_path)
|
|
||||||
|
# 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 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' Command: {command}', level=1)
|
||||||
|
subprocess.run(command)
|
||||||
|
|
||||||
|
if intermediate_zip_file_extracted:
|
||||||
|
lprint(f'- Detected intermediate zip file in install root, removing: {archive_path}', level=1)
|
||||||
|
os.remove(archive_path)
|
||||||
|
|
||||||
# Remove duplicate root folder if detected
|
# Remove duplicate root folder if detected
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
@ -370,6 +369,14 @@ def download_and_install_archive(download_url,
|
|||||||
version_label=version_label,
|
version_label=version_label,
|
||||||
exe_rel_path=exe_rel_path)
|
exe_rel_path=exe_rel_path)
|
||||||
|
|
||||||
|
# If you install the Linux manifest on Windows then we ensure we
|
||||||
|
# still call link (e.g. hardlink) because symlinks need special
|
||||||
|
# Windows 10 permissions to be set...
|
||||||
|
#
|
||||||
|
# It's weird that we install Linux manifest on Windows, yes, but
|
||||||
|
# I use it for testing without having to boot up a whole nother
|
||||||
|
# OS.
|
||||||
|
use_hardlink = is_windows or os.name == 'nt'
|
||||||
for symlink_entry in exe_dict["symlink"]:
|
for symlink_entry in exe_dict["symlink"]:
|
||||||
symlink_dest = symlink_dir / symlink_entry
|
symlink_dest = symlink_dir / symlink_entry
|
||||||
symlink_src = exe_path
|
symlink_src = exe_path
|
||||||
@ -377,7 +384,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 (use_hardlink and not os.path.isfile(symlink_dest)) or (not use_hardlink 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)
|
||||||
@ -390,7 +397,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 use_hardlink:
|
||||||
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)
|
||||||
@ -406,7 +413,7 @@ def download_and_install_archive(download_url,
|
|||||||
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"
|
||||||
|
|
||||||
# Search the 2 dictionarries, 'first' and 'second' for the key. A matching key
|
# Search the 2 dictionarries, 'first' and 'second' for the key. A matching key
|
||||||
# in 'first' taking precedence over the 'second' dictionary. If no key is
|
# in 'first' taking precedence over the 'second' dictionary. If no key is
|
||||||
@ -507,24 +514,25 @@ def install_app_list(app_list, download_dir, install_dir, is_windows):
|
|||||||
# 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
|
global zstd_exe
|
||||||
global zstd_exe
|
if label == '7zip':
|
||||||
exe_path = get_exe_install_path(install_dir, label, version, manifest['executables'][0]['path'])
|
exe_path = get_exe_install_path(install_dir, label, version, manifest['executables'][0]['path'])
|
||||||
if label == '7zip':
|
if is_windows or os.name == 'nt':
|
||||||
if version == '920':
|
if version == '920':
|
||||||
unzip_method = UnzipMethod.SHUTILS
|
unzip_method = UnzipMethod.SHUTILS
|
||||||
zip7_bootstrap_exe = exe_path
|
zip7_bootstrap_exe = exe_path
|
||||||
else:
|
else:
|
||||||
unzip_method = UnzipMethod.ZIP7_BOOTSTRAP
|
unzip_method = UnzipMethod.ZIP7_BOOTSTRAP
|
||||||
zip7_exe = exe_path
|
zip7_exe = exe_path
|
||||||
|
else:
|
||||||
if label == 'zstd':
|
unzip_method = UnzipMethod.ZIP7_SHUTILS
|
||||||
zstd_exe = exe_path
|
zip7_exe = exe_path
|
||||||
else:
|
zip7_bootstrap_exe = exe_path
|
||||||
unzip_method = UnzipMethod.SHUTILS
|
elif label == 'zstd':
|
||||||
|
zstd_exe = exe_path
|
||||||
|
|
||||||
# Download and install
|
# Download and install
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
@ -614,66 +622,98 @@ def run(user_app_list,
|
|||||||
global internal_app_list
|
global internal_app_list
|
||||||
internal_app_list = []
|
internal_app_list = []
|
||||||
|
|
||||||
if is_windows:
|
internal_app_list.append({
|
||||||
internal_app_list.append({
|
"label": "7zip",
|
||||||
'label': '7zip',
|
"manifests": [],
|
||||||
'manifests': [],
|
})
|
||||||
})
|
|
||||||
|
|
||||||
|
if is_windows or os.name == "nt":
|
||||||
version = "920"
|
version = "920"
|
||||||
internal_app_list[-1]['manifests'].append({ # Download the bootstrap 7zip, this can be unzipped using shutils
|
internal_app_list[-1]["manifests"].append({ # Download the bootstrap 7zip, this can be unzipped using shutils
|
||||||
'download_checksum': '2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac',
|
"download_checksum": "2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac",
|
||||||
'download_url': f'https://www.7-zip.org/a/7za{version}.zip',
|
"download_url": f"https://www.7-zip.org/a/7za{version}.zip",
|
||||||
'version': version,
|
"version": version,
|
||||||
'executables': [
|
"executables": [
|
||||||
{
|
{
|
||||||
'path': '7za.exe',
|
"path": "7za.exe",
|
||||||
'symlink': [],
|
"symlink": [],
|
||||||
'add_to_devenv_path': False,
|
"add_to_devenv_path": False,
|
||||||
'checksum': 'c136b1467d669a725478a6110ebaaab3cb88a3d389dfa688e06173c066b76fcf'
|
"checksum": "c136b1467d669a725478a6110ebaaab3cb88a3d389dfa688e06173c066b76fcf"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'add_to_devenv_script': [],
|
"add_to_devenv_script": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
version = "2201"
|
version = "2201"
|
||||||
internal_app_list[-1]['manifests'].append({ # Download proper 7zip, extract this exe with the bootstrap 7zip
|
download_url = ""
|
||||||
'download_checksum': 'b055fee85472921575071464a97a79540e489c1c3a14b9bdfbdbab60e17f36e4',
|
download_checksum = ""
|
||||||
'download_url': f'https://www.7-zip.org/a/7z{version}-x64.exe',
|
checksum = ""
|
||||||
'version': version,
|
exe_path = ""
|
||||||
'executables': [
|
|
||||||
{
|
|
||||||
'path': '7z.exe',
|
|
||||||
'symlink': [],
|
|
||||||
'add_to_devenv_path': True,
|
|
||||||
'checksum': '254cf6411d38903b2440819f7e0a847f0cfee7f8096cfad9e90fea62f42b0c23'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'add_to_devenv_script': [],
|
|
||||||
})
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
if is_windows or os.name == "nt":
|
||||||
|
download_url = f"https://www.7-zip.org/a/7z{version}-x64.exe"
|
||||||
|
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"
|
||||||
|
|
||||||
version = "1.5.2"
|
internal_app_list[-1]["manifests"].append({ # Download proper 7zip, extract this exe with the bootstrap 7zip
|
||||||
internal_app_list.append({
|
"download_checksum": download_checksum,
|
||||||
"label": "zstd",
|
"download_url": download_url,
|
||||||
"manifests": [
|
"version": version,
|
||||||
{
|
"executables": [
|
||||||
"download_checksum": "68897cd037ee5e44c6d36b4dbbd04f1cc4202f9037415a3251951b953a257a09",
|
{
|
||||||
"download_url": f"https://github.com/facebook/zstd/releases/download/v{version}/zstd-v{version}-win64.zip",
|
"path": exe_path,
|
||||||
"version": version,
|
"symlink": [],
|
||||||
"executables": [
|
"add_to_devenv_path": True,
|
||||||
{
|
"checksum": checksum,
|
||||||
"path": "zstd.exe",
|
}
|
||||||
"symlink": [],
|
],
|
||||||
"add_to_devenv_path": True,
|
"add_to_devenv_script": [],
|
||||||
"checksum": "f14e78c0651851a670f508561d2c5d647da0ba08e6b73231f2e7539812bae311",
|
})
|
||||||
},
|
|
||||||
],
|
# ------------------------------------------------------------------------------
|
||||||
"add_to_devenv_script": [],
|
|
||||||
},
|
version = "1.5.2"
|
||||||
],
|
download_url = ""
|
||||||
})
|
download_checksum = ""
|
||||||
|
checksum = ""
|
||||||
|
exe_path = ""
|
||||||
|
|
||||||
|
if is_windows or os.name == 'nt':
|
||||||
|
download_url = f"https://github.com/facebook/zstd/releases/download/v{version}/zstd-v{version}-win64.zip"
|
||||||
|
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": [],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
# Run
|
# Run
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
@ -18,8 +18,8 @@ def get_manifest(is_windows):
|
|||||||
else:
|
else:
|
||||||
exe_path = f"WezTerm-{version}-Ubuntu18.04.AppImage"
|
exe_path = f"WezTerm-{version}-Ubuntu18.04.AppImage"
|
||||||
download_url = f"https://github.com/wez/wezterm/releases/download/{version}/{exe_path}"
|
download_url = f"https://github.com/wez/wezterm/releases/download/{version}/{exe_path}"
|
||||||
download_checksum = "7041d2c02d226c0c051cc9f6373d51ac9a2de00025e18582077c76e8ad68abe1"
|
download_checksum = "1611b4d5ba2598587874b3ff51dc0849e7ece7f2e0a0d376e13fbd00f9ae2807"
|
||||||
checksum = "none"
|
checksum = download_checksum
|
||||||
|
|
||||||
result.append({
|
result.append({
|
||||||
"label": "WezTerm",
|
"label": "WezTerm",
|
||||||
@ -85,9 +85,9 @@ def get_manifest(is_windows):
|
|||||||
checksum = "426074cd812586551fbab2bde67377113e2085c78c2e9a887748e85b4dc3dda5"
|
checksum = "426074cd812586551fbab2bde67377113e2085c78c2e9a887748e85b4dc3dda5"
|
||||||
else:
|
else:
|
||||||
exe_path = f"bin/cmake"
|
exe_path = f"bin/cmake"
|
||||||
download_url = f"https://github.com/Kitware/CMake/releases/download/v{version}/cmake-{version}-linux-x86_64.tar.gz",
|
download_url = f"https://github.com/Kitware/CMake/releases/download/v{version}/cmake-{version}-linux-x86_64.tar.gz"
|
||||||
download_checksum = "none"
|
download_checksum = "3fbcbff85043d63a8a83c8bdf8bd5b1b2fd5768f922de7dc4443de7805a2670d"
|
||||||
checksum = "none"
|
checksum = "0f2d7256be13a5955af1462d6dd40e1f0c0ce9fa822953f31ae27aa78da73440"
|
||||||
|
|
||||||
result[-1]['manifests'].append({
|
result[-1]['manifests'].append({
|
||||||
"download_checksum": download_checksum,
|
"download_checksum": download_checksum,
|
||||||
@ -111,9 +111,9 @@ def get_manifest(is_windows):
|
|||||||
download_checksum = "3bd57d1cfcf720a4cc72db77bda4c76a7b700fb0341821ad868963ad28856cd0"
|
download_checksum = "3bd57d1cfcf720a4cc72db77bda4c76a7b700fb0341821ad868963ad28856cd0"
|
||||||
checksum = "f2e3b486d87d2a6bc19b3a62c740028f3f8945875196ac7d3d0e69649e98730a"
|
checksum = "f2e3b486d87d2a6bc19b3a62c740028f3f8945875196ac7d3d0e69649e98730a"
|
||||||
else:
|
else:
|
||||||
download_url = f"https://github.com/Kitware/CMake/releases/download/v{version}/cmake-{version}-Linux-x86_64.tar.gz",
|
download_url = f"https://github.com/Kitware/CMake/releases/download/v{version}/cmake-{version}-Linux-x86_64.tar.gz"
|
||||||
download_checksum = "none"
|
download_checksum = "9e7c48b797484f74c5ee3ae55132b40b16ed8e81ee762402da8971205b0a896b"
|
||||||
checksum = "none"
|
checksum = "f12fbb91b198738cd0ade85ab1aa3f65964579a850042de3d2385cc0d593ad46"
|
||||||
|
|
||||||
result[-1]['manifests'].append({
|
result[-1]['manifests'].append({
|
||||||
"download_checksum": download_checksum,
|
"download_checksum": download_checksum,
|
||||||
@ -141,15 +141,15 @@ def get_manifest(is_windows):
|
|||||||
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
exe_path = f"doxygen.exe"
|
exe_path = f"doxygen.exe"
|
||||||
download_url = f"https://github.com/doxygen/doxygen/releases/download/Release_{version.replace('.', '_')}/doxygen-{version}.windows.x64.bin.zip",
|
download_url = f"https://github.com/doxygen/doxygen/releases/download/Release_{version.replace('.', '_')}/doxygen-{version}.windows.x64.bin.zip"
|
||||||
download_checksum = "3b34098c5fb016baa1d29aba101fe9d6843213b966b92a6b12c8856c547ee0c4"
|
download_checksum = "3b34098c5fb016baa1d29aba101fe9d6843213b966b92a6b12c8856c547ee0c4"
|
||||||
checksum = "3cb4d89f2b3db7eec2b6797dc6b49cdfe9adda954575898895260f66f312d730"
|
checksum = "3cb4d89f2b3db7eec2b6797dc6b49cdfe9adda954575898895260f66f312d730"
|
||||||
symlink = [f"doxygen-{version}.exe"]
|
symlink = [f"doxygen-{version}.exe"]
|
||||||
else:
|
else:
|
||||||
exe_path = f"doxygen"
|
exe_path = f"bin/doxygen"
|
||||||
download_url = f"https://github.com/doxygen/doxygen/releases/download/Release_{version.replace('.', '_')}/doxygen-{version}.linux.bin.tar.gz",
|
download_url = f"https://github.com/doxygen/doxygen/releases/download/Release_{version.replace('.', '_')}/doxygen-{version}.linux.bin.tar.gz"
|
||||||
download_checksum = "none"
|
download_checksum = "d157f247d579d0c976bb2595e7806bc4d0ffad105cbe0406b243afa1dc686a32"
|
||||||
checksum = "none"
|
checksum = "0f03e67bfdc61c6c9dd4ad1412ac2d90b478bfa7ddbd513c3faa9615b5d80c17"
|
||||||
symlink = [f"doxygen-{version}"]
|
symlink = [f"doxygen-{version}"]
|
||||||
|
|
||||||
result.append({
|
result.append({
|
||||||
@ -434,13 +434,14 @@ def get_manifest(is_windows):
|
|||||||
"manifests": [],
|
"manifests": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
version = "15.0.7"
|
version = ""
|
||||||
download_url = ""
|
download_url = ""
|
||||||
download_checksum = ""
|
download_checksum = ""
|
||||||
executables = []
|
executables = []
|
||||||
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe",
|
version = "15.0.7"
|
||||||
|
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe"
|
||||||
download_checksum = "7041d2c02d226c0c051cc9f6373d51ac9a2de00025e18582077c76e8ad68abe1"
|
download_checksum = "7041d2c02d226c0c051cc9f6373d51ac9a2de00025e18582077c76e8ad68abe1"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
@ -457,12 +458,13 @@ def get_manifest(is_windows):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
download_url = f""
|
version = "15.0.6" # No linux release for 15.0.7
|
||||||
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 = "38bc7f5563642e73e69ac5626724e206d6d539fbef653541b34cae0ba9c3f036"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++",
|
"path": f"bin/clang++",
|
||||||
"checksum": "none",
|
"checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
"symlink": [f"clang++-{version}"],
|
"symlink": [f"clang++-{version}"],
|
||||||
"add_to_devenv_path": True,
|
"add_to_devenv_path": True,
|
||||||
},
|
},
|
||||||
@ -482,8 +484,9 @@ def get_manifest(is_windows):
|
|||||||
"add_to_devenv_script": [],
|
"add_to_devenv_script": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
version = "14.0.6"
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
|
version = "14.0.6"
|
||||||
|
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe"
|
||||||
download_checksum = "e8dbb2f7de8e37915273d65c1c2f2d96844b96bb8e8035f62c5182475e80b9fc"
|
download_checksum = "e8dbb2f7de8e37915273d65c1c2f2d96844b96bb8e8035f62c5182475e80b9fc"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
@ -500,6 +503,8 @@ def get_manifest(is_windows):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
else:
|
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 = "none"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
@ -526,6 +531,7 @@ def get_manifest(is_windows):
|
|||||||
|
|
||||||
version = "13.0.1"
|
version = "13.0.1"
|
||||||
if is_windows:
|
if is_windows:
|
||||||
|
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe"
|
||||||
download_checksum = "9d15be034d52ec57cfc97615634099604d88a54761649498daa7405983a7e12f"
|
download_checksum = "9d15be034d52ec57cfc97615634099604d88a54761649498daa7405983a7e12f"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
@ -543,6 +549,7 @@ def get_manifest(is_windows):
|
|||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
download_checksum = "none"
|
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"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++",
|
"path": f"bin/clang++",
|
||||||
@ -569,6 +576,7 @@ def get_manifest(is_windows):
|
|||||||
version = "12.0.1"
|
version = "12.0.1"
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_checksum = "fcbabc9a170208bb344f7bba8366cca57ff103d72a316781bbb77d634b9e9433"
|
download_checksum = "fcbabc9a170208bb344f7bba8366cca57ff103d72a316781bbb77d634b9e9433"
|
||||||
|
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++.exe",
|
"path": f"bin/clang++.exe",
|
||||||
@ -585,6 +593,7 @@ def get_manifest(is_windows):
|
|||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
download_checksum = "none"
|
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"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++",
|
"path": f"bin/clang++",
|
||||||
@ -611,6 +620,7 @@ def get_manifest(is_windows):
|
|||||||
version = "11.1.0"
|
version = "11.1.0"
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_checksum = "b5770bbfac712d273938cd155e232afaa85c2e8d865c7ca504a104a838568516"
|
download_checksum = "b5770bbfac712d273938cd155e232afaa85c2e8d865c7ca504a104a838568516"
|
||||||
|
download_url = f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-win64.exe"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++.exe",
|
"path": f"bin/clang++.exe",
|
||||||
@ -627,6 +637,7 @@ def get_manifest(is_windows):
|
|||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
download_checksum = "none"
|
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"
|
||||||
executables = [
|
executables = [
|
||||||
{
|
{
|
||||||
"path": f"bin/clang++",
|
"path": f"bin/clang++",
|
||||||
@ -659,12 +670,12 @@ def get_manifest(is_windows):
|
|||||||
checksum = ""
|
checksum = ""
|
||||||
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_url = f"https://github.com/ninja-build/ninja/releases/download/v{version}/ninja-win.zip",
|
download_url = f"https://github.com/ninja-build/ninja/releases/download/v{version}/ninja-win.zip"
|
||||||
download_checksum = "524b344a1a9a55005eaf868d991e090ab8ce07fa109f1820d40e74642e289abc"
|
download_checksum = "524b344a1a9a55005eaf868d991e090ab8ce07fa109f1820d40e74642e289abc"
|
||||||
checksum = "23e7d60c17b3fcd42d9c00d49eca3c3771b04d7ccb13e49836b06b34e20211c7"
|
checksum = "23e7d60c17b3fcd42d9c00d49eca3c3771b04d7ccb13e49836b06b34e20211c7"
|
||||||
exe_path = "ninja.exe"
|
exe_path = "ninja.exe"
|
||||||
else:
|
else:
|
||||||
download_url = f"https://github.com/ninja-build/ninja/releases/download/v{version}/ninja-linux.zip",
|
download_url = f"https://github.com/ninja-build/ninja/releases/download/v{version}/ninja-linux.zip"
|
||||||
download_checksum = "none"
|
download_checksum = "none"
|
||||||
checksum = "none"
|
checksum = "none"
|
||||||
exe_path = "ninja"
|
exe_path = "ninja"
|
||||||
@ -850,11 +861,11 @@ def get_manifest(is_windows):
|
|||||||
symlink = []
|
symlink = []
|
||||||
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_url = f"https://ziglang.org/download/{version}/zig-windows-x86_64-{version}.zip"
|
download_url = f"https://ziglang.org/download/{version}/zig-windows-x86_64-{version}.zip"
|
||||||
download_checksum = "5768004e5e274c7969c3892e891596e51c5df2b422d798865471e05049988125"
|
download_checksum = "5768004e5e274c7969c3892e891596e51c5df2b422d798865471e05049988125"
|
||||||
checksum = "607c9928a24f9d2e08df1ee240ebfd15ab1eb3c14b85e02f7dad6f8c8b53fea8"
|
checksum = "607c9928a24f9d2e08df1ee240ebfd15ab1eb3c14b85e02f7dad6f8c8b53fea8"
|
||||||
exe_path = "zig.exe"
|
exe_path = "zig.exe"
|
||||||
symlink = [f"zig-{version}.exe"]
|
symlink = [f"zig-{version}.exe"]
|
||||||
else:
|
else:
|
||||||
download_url = f"https://ziglang.org/download/{version}/zig-linux-x86_64-{version}.zip"
|
download_url = f"https://ziglang.org/download/{version}/zig-linux-x86_64-{version}.zip"
|
||||||
download_checksum = "none"
|
download_checksum = "none"
|
||||||
@ -1418,10 +1429,10 @@ def get_manifest(is_windows):
|
|||||||
checksum = ""
|
checksum = ""
|
||||||
|
|
||||||
if is_windows:
|
if is_windows:
|
||||||
download_url = f"https://cancel.fm/dl/Ripcord_Win_{version}.zip"
|
download_url = f"https://cancel.fm/dl/Ripcord_Win_{version}.zip"
|
||||||
download_checksum = "c7a393ac669d02c16828706521833df06b690554368049545e47a1420fa8f04f"
|
download_checksum = "c7a393ac669d02c16828706521833df06b690554368049545e47a1420fa8f04f"
|
||||||
checksum = "12d62abb9ad4db43c2b9b1398acae66857eb6e64205364631a3d3bda0ff17e2e"
|
checksum = "12d62abb9ad4db43c2b9b1398acae66857eb6e64205364631a3d3bda0ff17e2e"
|
||||||
exe_path = "ripcord.exe"
|
exe_path = "ripcord.exe"
|
||||||
else:
|
else:
|
||||||
exe_path = "Ripcord-{version}-x86_64.AppImage"
|
exe_path = "Ripcord-{version}-x86_64.AppImage"
|
||||||
download_url = f"https://cancel.fm/dl/{exe_path}"
|
download_url = f"https://cancel.fm/dl/{exe_path}"
|
||||||
|
Loading…
Reference in New Issue
Block a user