linux stuff
This commit is contained in:
parent
99c16ae0c3
commit
77507e0b35
125
linux_install.sh
125
linux_install.sh
@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Functions
|
# Functions
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
DownloadFile()
|
DownloadFile()
|
||||||
@ -9,33 +8,34 @@ DownloadFile()
|
|||||||
dest_file=$2
|
dest_file=$2
|
||||||
|
|
||||||
if [[ -f "${dest_file}" ]]; then
|
if [[ -f "${dest_file}" ]]; then
|
||||||
echo "- [Download] [Cached] ${url} to ${dest_file}"
|
echo "- [DownloadFile/Cached] ${url} to ${dest_file}"
|
||||||
else
|
else
|
||||||
|
echo "- [DownloadFile] ${url} to ${dest_file}"
|
||||||
wget --output-document ${dest_file} ${url}
|
wget --output-document ${dest_file} ${url}
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Failed to download file from ${url}"
|
echo "- [DownloadFile] Download failed [url=${url}]"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
FileSHA256HashCheck()
|
FileSHA256Check()
|
||||||
{
|
{
|
||||||
file=$1
|
file=$1
|
||||||
expected=$2
|
expected=$2
|
||||||
|
|
||||||
echo "${expected} ${file}" | sha256sum --check
|
echo "${expected} ${file}" | sha256sum --check
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo "- [Verify] ${file} "
|
echo "- [FileSHA256Check] Failed [file=${file}, "
|
||||||
echo "Expected: ${expected}"
|
echo " expect=${expected} ${file},"
|
||||||
echo "Actual: $(sha256sum ${file})"
|
echo " actual=$(sha256sum ${file})"
|
||||||
|
echo " ]"
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
echo "- [Verify] Hash OK: ${file} ${expected}"
|
echo "- [FileSHA256Check] OK [file=${file}, hash=${expected}]"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Setup
|
# Setup
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
root_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
root_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
@ -49,71 +49,94 @@ mkdir --parents ${tools_dir}
|
|||||||
mkdir --parents ${downloads_dir}
|
mkdir --parents ${downloads_dir}
|
||||||
|
|
||||||
bin_dir=${tools_dir}/Binaries
|
bin_dir=${tools_dir}/Binaries
|
||||||
|
|
||||||
vim_dir=${HOME}/.vim
|
|
||||||
vim_plug_dir=${vim_dir}/autoload
|
|
||||||
mkdir --parents ${vim_plug_dir}
|
|
||||||
mkdir --parents ${bin_dir}
|
mkdir --parents ${bin_dir}
|
||||||
mkdir --parents ~/.config/nvim
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Tools
|
# Tools
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Dependencies
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
sudo apt install exuberant-ctags neovim clang-format
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# CMake
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
cmake_sha256=aaced6f745b86ce853661a595bdac6c5314a60f8181b6912a0a4920acfa32708
|
||||||
|
cmake_exe_sha256=95b80ba2b97b619abce1ed6fd28fe189cacba48403e9c69256f2f94e3405e645
|
||||||
|
cmake_version=3.23.2
|
||||||
|
|
||||||
|
cmake_label=cmake_linux64_${cmake_version}
|
||||||
|
cmake_download_file=${downloads_dir}/${cmake_label}.tar.gz
|
||||||
|
cmake_dir=${tools_dir}/${cmake_label}
|
||||||
|
cmake_exe=${cmake_dir}/bin/cmake
|
||||||
|
|
||||||
|
if [[ ! -f "${cmake_exe}" ]]; then
|
||||||
|
DownloadFile "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-linux-x86_64.tar.gz" "${cmake_download_file}" || exit
|
||||||
|
FileSHA256Check "${cmake_download_file}" "${cmake_sha256}" || exit
|
||||||
|
mkdir --parents "${cmake_dir}" && tar xf "${cmake_download_file}" --overwrite --directory="${cmake_dir}" || exit
|
||||||
|
echo "mv --force ${cmake_dir}/cmake-${cmake_version}-linux-x86_64 "${cmake_dir}""
|
||||||
|
mv ${cmake_dir}/cmake-${cmake_version}-linux-x86_64/* "${cmake_dir}" || exit
|
||||||
|
rm --recursive ${cmake_dir}/cmake-${cmake_version}-linux-x86_64 || exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
FileSHA256Check "${cmake_exe}" "${cmake_exe_sha256}" || exit
|
||||||
|
cd "${bin_dir}" && ln --force --symbolic --relative "${cmake_exe}" cmake && cd "${root_dir}"
|
||||||
|
cd "${bin_dir}" && ln --force --symbolic --relative "${cmake_exe}" cmake-${cmake_version} && cd "${root_dir}"
|
||||||
|
|
||||||
# Vim Configuration
|
# Vim Configuration
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
cp --force ${installer_dir}/os_vimrc ~/.vimrc || exit
|
||||||
|
cp --force ${installer_dir}/os_clang_format_style_file ~/_clang-format || exit
|
||||||
|
|
||||||
|
# Nvim Config
|
||||||
|
nvim_init_dir=~/.config/nvim
|
||||||
|
mkdir --parents "${nvim_init_dir}"
|
||||||
|
cp --force ${installer_dir}/os_nvim_init.vim ${nvim_init_dir}/init.vim || exit
|
||||||
|
|
||||||
# Vim Package Manager
|
# Vim Package Manager
|
||||||
if [[ ! -f "${vim_plug_dir}/plug.vim" ]]; then
|
vim_plug_dir=${nvim_init_dir}/autoload
|
||||||
wget --directory-prefix=${vim_plug_dir} https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
vim_plug=${vim_plug_dir}/plug.vim
|
||||||
fi
|
mkdir --parents ${vim_plug_dir}
|
||||||
|
DownloadFile "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" "${vim_plug}" || exit
|
||||||
# Clang Format
|
|
||||||
if [[ ! -f "${vim_dir}/clang-format.py" ]]; then
|
|
||||||
wget --directory-prefix=${vim_dir} https://raw.githubusercontent.com/llvm/llvm-project/main/clang/tools/clang-format/clang-format.py
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# Nvim
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# NVim
|
nvim_sha256=33b5d020c730b6d1b5185b1306ead83b6b8f8fab0239e0580c72b5224a9658e1
|
||||||
# ------------------------------------------------------------------------------
|
nvim_version=0.7.2
|
||||||
cp --force ${installer_dir}/os_vimrc ~/.vimrc
|
|
||||||
cp --force ${installer_dir}/os_clang_format_style_file ~/_clang-format
|
nvim_label=nvim_linux64_${nvim_version}
|
||||||
cp --force ${installer_dir}/os_nvim_init.vim ~/.config/nvim/init.vim
|
nvim_exe=${tools_dir}/${nvim_label}.appimage
|
||||||
|
|
||||||
|
DownloadFile "https://github.com/neovim/neovim/releases/download/v${nvim_version}/nvim.appimage" "${nvim_exe}" || exit
|
||||||
|
FileSHA256Check "${nvim_exe}" "${nvim_sha256}" || exit
|
||||||
|
|
||||||
|
chmod +x "${nvim_exe}"
|
||||||
|
cd "${bin_dir}" && ln --force --symbolic --relative "${nvim_exe}" nvim && cd "${root_dir}"
|
||||||
|
cd "${bin_dir}" && ln --force --symbolic --relative "${nvim_exe}" vim && cd "${root_dir}"
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Neovide
|
# Neovide
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
neovide_sha256=dbd0903bae5baff550406fd1e09e7ca0afc57ec855305545ae1c13485c7f1d69
|
neovide_sha256=684cbcaeb2e67f1d95822ef80e03e1475395d537f2032f47b8202fe48c428b08
|
||||||
neovide_exe_sha256=fc946c3d58f6e61eef78635eec81cbbb067b02c0deffb7661254896ce5b20578
|
neovide_exe_sha256=e4fbc8b56af2e25127938ae2974921e25b4df5722086d7e8c3e517e8ee86e2df
|
||||||
neovide_version=0.8.0
|
neovide_version=0.9.0
|
||||||
|
|
||||||
neovide_download_file=${downloads_dir}/neovide-v${neovide_version}.tar.gz.zip
|
neovide_label=neovide_linux64_${neovide_version}
|
||||||
neovide_dir=${tools_dir}/neovide-v${neovide_version}-linux
|
neovide_download_file=${downloads_dir}/${neovide_label}.tar.gz
|
||||||
neovide_exe=${neovide_dir}/neovide
|
neovide_dir=${tools_dir}
|
||||||
|
neovide_exe=${neovide_dir}/${neovide_label}
|
||||||
neovide_url=https://github.com/neovide/neovide/releases/download/${neovide_version}/neovide-linux.tar.gz.zip
|
|
||||||
|
|
||||||
if [[ ! -f "${neovide_exe}" ]]; then
|
if [[ ! -f "${neovide_exe}" ]]; then
|
||||||
DownloadFile "https://github.com/neovide/neovide/releases/download/${neovide_version}/neovide-linux.tar.gz.zip" ${neovide_download_file}
|
DownloadFile "https://github.com/neovide/neovide/releases/download/${neovide_version}/neovide.tar.gz" ${neovide_download_file} || exit
|
||||||
FileSHA256HashCheck ${neovide_download_file} ${neovide_sha256}
|
FileSHA256Check ${neovide_download_file} ${neovide_sha256} || exit
|
||||||
|
|
||||||
unzip -o ${neovide_download_file} -d ${neovide_dir}
|
mkdir --parents "${cmake_dir}" && tar xf ${neovide_download_file} --overwrite --directory=${neovide_dir}/neovide-tmp || exit
|
||||||
tar xf ${neovide_dir}/neovide.tar.gz --overwrite --directory=${neovide_dir}
|
mv ${neovide_dir}/neovide-tmp/target/release/neovide "${neovide_exe}" || exit
|
||||||
mv ${neovide_dir}/target/release/neovide ${neovide_dir}
|
rm -rf ${neovide_dir}/neovide-tmp
|
||||||
rm -rf ${neovide_dir}/neovide.tar.gz
|
|
||||||
rm -rf ${neovide_dir}/target
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FileSHA256HashCheck ${neovide_exe} ${neovide_exe_sha256}
|
FileSHA256Check ${neovide_exe} ${neovide_exe_sha256} || exit
|
||||||
|
cd "${bin_dir}" && ln --force --symbolic --relative "${neovide_exe}" neovide && cd "${root_dir}"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Ctags
|
# Ctags
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
rm --force ${bin_dir}/ctags_cpp.sh
|
rm --force ${bin_dir}/ctags_cpp.sh
|
||||||
echo ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ \$\@ >> ${bin_dir}/ctags_cpp.sh
|
echo ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ \$\@ >> ${bin_dir}/ctags_cpp.sh
|
||||||
chmod +x ${bin_dir}/ctags_cpp.sh
|
chmod +x ${bin_dir}/ctags_cpp.sh
|
||||||
|
|
||||||
|
echo PATH=${tools_dir}/Binaries:\$\{PATH\}> ${tools_dir}/linux_terminal.sh
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
REM Win Helpers - Version 2
|
REM Win Helpers - Version 3
|
||||||
call %*
|
call %*
|
||||||
goto exit
|
goto exit
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ if exist "!dest_file!" (
|
|||||||
if exist "!dest_file!" (
|
if exist "!dest_file!" (
|
||||||
exit /B 0
|
exit /B 0
|
||||||
) else (
|
) else (
|
||||||
echo [Download File] Failed to download file from !url!
|
echo [DownloadFile] Download failed [url=!url!]
|
||||||
exit /B 1
|
exit /B 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,9 +14,7 @@ if not exist !home_dir! mkdir !home_dir!
|
|||||||
if not exist !tools_dir! mkdir !tools_dir!
|
if not exist !tools_dir! mkdir !tools_dir!
|
||||||
if not exist !downloads_dir! mkdir !downloads_dir!
|
if not exist !downloads_dir! mkdir !downloads_dir!
|
||||||
|
|
||||||
set vim_dir=!home_dir!\.vim
|
|
||||||
set bin_dir=!tools_dir!\Binaries
|
set bin_dir=!tools_dir!\Binaries
|
||||||
if not exist !vim_dir! mkdir !vim_dir!
|
|
||||||
if not exist !bin_dir! mkdir !bin_dir!
|
if not exist !bin_dir! mkdir !bin_dir!
|
||||||
|
|
||||||
set tmp_terminal_script=!tools_dir!\win_terminal.bat.tmp
|
set tmp_terminal_script=!tools_dir!\win_terminal.bat.tmp
|
||||||
@ -665,7 +663,6 @@ if not exist "!neovide_exe!" (
|
|||||||
call win_helpers.bat :FileHashCheck sha256 "!neovide_exe!" "!neovide_exe_sha256!" || exit /B %ERRORLEVEL%
|
call win_helpers.bat :FileHashCheck sha256 "!neovide_exe!" "!neovide_exe_sha256!" || exit /B %ERRORLEVEL%
|
||||||
call win_helpers.bat :MakeBatchShortcut "neovide" "!neovide_exe!" "!bin_dir!" || exit /B %ERRORLEVEL%
|
call win_helpers.bat :MakeBatchShortcut "neovide" "!neovide_exe!" "!bin_dir!" || exit /B %ERRORLEVEL%
|
||||||
|
|
||||||
REM ----------------------------------------------------------------------------
|
|
||||||
REM Vim Configuration
|
REM Vim Configuration
|
||||||
REM ----------------------------------------------------------------------------
|
REM ----------------------------------------------------------------------------
|
||||||
REM Nvim Config
|
REM Nvim Config
|
||||||
|
Loading…
Reference in New Issue
Block a user