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…
Reference in New Issue
Block a user