DEVenv/win32_install.bat

852 lines
39 KiB
Batchfile
Raw Normal View History

2020-07-20 13:27:23 +00:00
@echo off
2021-07-15 07:39:40 +00:00
setlocal EnableDelayedExpansion
2020-10-20 23:29:27 +00:00
call win32_install_config.bat
REM ----------------------------------------------------------------------------
REM Setup Folder Locations
REM ----------------------------------------------------------------------------
set root_dir=!CD!
set home_dir=Home
set install_dir=Installer
set downloads_dir=!install_dir!\Downloads
set vim_dir=!home_dir!\vimfiles
set tools_dir=Tools
2021-10-15 14:17:19 +00:00
set bin_dir=!tools_dir!\binaries
if not exist !home_dir! mkdir !home_dir!
if not exist !install_dir! mkdir !install_dir!
if not exist !downloads_dir! mkdir !downloads_dir!
if not exist !tools_dir! mkdir !tools_dir!
2021-09-15 11:50:33 +00:00
if not exist !bin_dir! mkdir !bin_dir!
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM Setup tools for setting up the development environment
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
2021-08-19 07:56:31 +00:00
REM We are ultra pedantic and we check the hashes of the distribution but also
REM we check the hashes of the actual binary that we'll execute. This will
REM ensure that the currently installed programs in the tools folder doesn't get
REM tampered with at some point after installation.
REM
REM Unforunately, since this is not standard practice to provide by
REM distributions we have to calculate them manually.
2020-07-20 13:27:23 +00:00
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM Bootstrap 7zip
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM We get an old version of 7z that is available as a .zip file which we can
REM extract on Windows with just PowerShell (i.e. no dependency).
set zip7_bootstrap_sha256=2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac
2021-08-19 07:56:31 +00:00
set zip7_bootstrap_exe_sha256=c136b1467d669a725478a6110ebaaab3cb88a3d389dfa688e06173c066b76fcf
set zip7_bootstrap_version=920
2021-08-19 07:56:31 +00:00
set zip7_bootstrap_zip=!downloads_dir!\win32_7zip_bootstrap_v!zip7_bootstrap_version!.zip
set zip7_bootstrap_dir=!tools_dir!\7zip_bootstrap-!zip7_bootstrap_version!
2021-08-19 07:56:31 +00:00
set zip7_bootstrap_exe=!zip7_bootstrap_dir!\7za.exe
if not exist "!zip7_bootstrap_exe!" (
call :DownloadFile "https://www.7-zip.org/a/7za!zip7_bootstrap_version!.zip" "!zip7_bootstrap_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!zip7_bootstrap_zip!" "!zip7_bootstrap_sha256!" || exit /B
)
if not exist "!zip7_bootstrap_dir!" powershell "Expand-Archive !zip7_bootstrap_zip! -DestinationPath !zip7_bootstrap_dir!" || exit /B
2020-07-20 13:27:23 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!zip7_bootstrap_exe!" "!zip7_bootstrap_version!" "!zip7_bootstrap_exe_sha256!" || exit /B
2021-08-19 07:56:31 +00:00
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM 7zip
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM Use our bootstrap 7z from above to download the latest 7zip version
REM NOTE: We do not use 7za because it can not unzip a NSIS installer. The full
REM version however can.
set zip7_sha256=0f5d4dbbe5e55b7aa31b91e5925ed901fdf46a367491d81381846f05ad54c45e
2021-08-19 07:56:31 +00:00
set zip7_exe_sha256=344f076bb1211cb02eca9e5ed2c0ce59bcf74ccbc749ec611538fa14ecb9aad2
set zip7_version=1900
2021-08-19 07:56:31 +00:00
set zip7_zip=!downloads_dir!\win32_7zip_v!zip7_version!.exe
set zip7_dir=!tools_dir!\7zip-!zip7_version!
2021-08-19 07:56:31 +00:00
set zip7_exe=!zip7_dir!\7z.exe
if not exist "!zip7_exe!" (
call :DownloadFile "https://www.7-zip.org/a/7z!zip7_version!-x64.exe" "!zip7_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!zip7_zip!" "!zip7_sha256!" || exit /B
2021-08-19 07:56:31 +00:00
"!zip7_bootstrap_exe!" x -y -o"!zip7_dir!" !zip7_zip! || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!zip7_exe!" "!zip7_version!" "!zip7_exe_sha256!" || exit /B
2020-11-04 14:27:24 +00:00
REM ----------------------------------------------------------------------------
REM GPG Signature Verification
REM ----------------------------------------------------------------------------
set gpg_w32_sha256=77cec7f274ee6347642a488efdfa324e8c3ab577286e611c397e69b1b396ab16
2021-08-19 07:56:31 +00:00
set gpg_w32_exe_sha256=551bfc44b1c90c66908379ec4035756b812545eee19b36bdbe1f659cfcd6bc0b
set gpg_w32_version=2.3.1
set gpg_w32_date=20210420
2021-08-19 07:56:31 +00:00
set gpg_w32_zip=!downloads_dir!\win32_gpg_w32_v!gpg_w32_version!.exe
set gpg_w32_dir=!tools_dir!\gpg_w32-!gpg_w32_version!
2021-08-19 07:56:31 +00:00
set gpg_w32_exe=!gpg_w32_dir!\bin\gpg.exe
if not exist "!gpg_w32_exe!" (
call :DownloadFile "https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-!gpg_w32_version!_!gpg_w32_date!.exe" "!gpg_w32_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!gpg_w32_zip!" "!gpg_w32_sha256!" || exit /B
call :Unzip "!gpg_w32_zip!" "!gpg_w32_dir!" || exit /B
)
2020-11-04 14:27:24 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!gpg_w32_exe!" "!gpg_w32_version!" "!gpg_w32_exe_sha256!" || exit /B
2021-08-19 07:56:31 +00:00
set gpg_w32_bin_dir=!gpg_w32_dir!\bin
set PATH="!gpg_w32_bin_dir!";!PATH!
2020-07-20 13:27:23 +00:00
REM ----------------------------------------------------------------------------
REM Application Setup
REM ----------------------------------------------------------------------------
REM Download & verify the tools we want for development
2021-01-06 23:23:02 +00:00
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
2021-10-15 14:17:19 +00:00
REM Wezterm
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
2021-10-15 14:17:19 +00:00
if !install_wezterm! == 1 (
2022-02-08 00:30:34 +00:00
set wezterm_sha256=7873a5bc829da97e2a4589c16877f730b8e48231c906124154683fb0283c7095
set wezterm_exe_sha256=1bab3b8b2d60c6e4c5d044f4e91f037a7dfe571640bd0b2a5c2808629eda5e3b
set wezterm_version=20220101-133340-7edc5b5a
2021-08-19 07:56:31 +00:00
2021-10-15 14:17:19 +00:00
set wezterm_zip=!downloads_dir!\win32_wezterm-!wezterm_version!.zip
set wezterm_dir=!tools_dir!\wezterm-!wezterm_version!
set wezterm_exe=!wezterm_dir!\wezterm-gui.exe
if not exist "!wezterm_exe!" (
call :DownloadFile https://github.com/wez/wezterm/releases/download/!wezterm_version!/WezTerm-windows-!wezterm_version!.zip "!wezterm_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!wezterm_zip!" "!wezterm_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :Unzip "!wezterm_zip!" "!wezterm_dir!" || exit /B
call :Move "!wezterm_dir!\wezterm-windows-!wezterm_version!" "!wezterm_dir!" || exit /B
2021-09-15 11:50:33 +00:00
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!wezterm_exe!" "!wezterm_version!" "!wezterm_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :CopyAndAlwaysOverwriteFile "!install_dir!\wezterm.lua" "!wezterm_dir!\wezterm.lua" || exit /B
2021-09-15 11:50:33 +00:00
)
2021-10-18 09:32:46 +00:00
REM ----------------------------------------------------------------------------
REM Jetbrains Mono Font
REM ----------------------------------------------------------------------------
set jetbrains_mono_sha256=4e315b4ef176ce7ffc971b14997bdc8f646e3d1e5b913d1ecba3a3b10b4a1a9f
set jetbrains_mono_file_sha256=50e1dcb40298fcfcc21a1ef3cbee9fe9e82709c48ad30ce617472c06a3bd9436
set jetbrains_mono_version=2.242
set jetbrains_mono_zip=!downloads_dir!\jetbrains_mono-!jetbrains_mono_version!.zip
set jetbrains_mono_dir=!tools_dir!\jetbrains_mono-!jetbrains_mono_version!
set jetbrains_mono_file=!jetbrains_mono_dir!\fonts\ttf\JetBrainsMono-Regular.ttf
if not exist "!jetbrains_mono_file!" (
call :DownloadFile https://download.jetbrains.com/fonts/JetBrainsMono-!jetbrains_mono_version!.zip "!jetbrains_mono_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!jetbrains_mono_zip!" "!jetbrains_mono_sha256!" || exit /B
2021-10-18 09:32:46 +00:00
call :Unzip "!jetbrains_mono_zip!" "!jetbrains_mono_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!jetbrains_mono_file!" "!jetbrains_mono_version!" "!jetbrains_mono_file_sha256!" || exit /B
2021-10-18 09:32:46 +00:00
2021-09-15 11:50:33 +00:00
REM ----------------------------------------------------------------------------
REM Programming
REM ----------------------------------------------------------------------------
REM ----------------------------------------------------------------------------
REM Git
2021-09-15 11:50:33 +00:00
REM ----------------------------------------------------------------------------
if !install_git! == 1 (
set git_sha256=bc030848e282d49e562ae2392a72501cf539322ad06ffe4cea8cf766f148dfe8
2021-09-15 11:50:33 +00:00
set git_exe_sha256=ae463cad04c2b15fc91de68ab096933ec08c44752e205aebd7d64c3a482df62d
set git_version=2.33.0
set git_zip=!downloads_dir!\win32_git_!git_version!.7z.exe
set git_dir=!tools_dir!\PortableGit-!git_version!
2021-09-15 11:50:33 +00:00
set git_exe=!git_dir!\cmd\git.exe
if not exist "!git_exe!" (
call :DownloadFile "https://github.com/git-for-windows/git/releases/download/v!git_version!.windows.2/PortableGit-!git_version!.2-64-bit.7z.exe" "!git_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!git_zip!" "!git_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
call :Unzip "!git_zip!" "!git_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!git_exe!" "!git_version!" "!git_exe_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
)
REM ----------------------------------------------------------------------------
REM LLVM/Clang
REM ----------------------------------------------------------------------------
if !install_llvm_clang! == 1 (
set llvm_exe_sha256=9f0748de7f946c210a030452de226986bab46a0121d7236ea0e7b5079cb6dfef
set llvm_version=12.0.1
set llvm_zip=!downloads_dir!\win32_llvm_x64_v!llvm_version!.exe
set llvm_dir=!tools_dir!\llvm-!llvm_version!
set llvm_exe=!llvm_dir!\bin\clang.exe
set llvm_gpg_key=!downloads_dir!\llvm-tstellar-gpg-key.asc
set llvm_gpg_sig=!llvm_zip!.sig
if not exist "!llvm_exe!" (
call :DownloadFile "https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/tstellar-gpg-key.asc" "!llvm_gpg_key!" || exit /B
call :DownloadFile "https://github.com/llvm/llvm-project/releases/download/llvmorg-!llvm_version!/LLVM-!llvm_version!-win64.exe.sig" "!llvm_gpg_sig!" || exit /B
call :DownloadFile "https://github.com/llvm/llvm-project/releases/download/llvmorg-!llvm_version!/LLVM-!llvm_version!-win64.exe" "!llvm_zip!" || exit /B
gpg --import "!llvm_gpg_key!" || exit /B
gpg --verify "!llvm_gpg_sig!" "!llvm_zip!" || exit /B
call :Unzip "!llvm_zip!" "!llvm_dir!" || exit /B
)
if !install_gvim! == 1 (
set clang_format_py_sha256=36ba7aa047f8a8ac8fdc278aaa733de801cc84dea60a4210973fd3e4f0d2a330
set vim_clang_format=!vim_dir!\clang-format.py
call :CopyAndAlwaysOverwriteFile "!llvm_dir!\share\clang\clang-format.py" "!vim_clang_format!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!vim_clang_format!" "!llvm_version!" "!clang_format_py_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
)
set llvm_bin_dir=!llvm_dir!\bin
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!llvm_exe!" "!llvm_version!" "!llvm_exe_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
)
REM ------------------------------------------------------------------------
REM MinGW64
REM ------------------------------------------------------------------------
if !install_mingw64! == 1 (
set mingw_sha256=853970527b5de4a55ec8ca4d3fd732c00ae1c69974cc930c82604396d43e79f8
set mingw_exe_sha256=c5f0953f7a71ddcdf0852e1e44a43cef9b8fe121beba4d4202bfe6d405de47c0
set mingw_version=8.1.0
set mingw_zip=!downloads_dir!\win32_mingw64-posix-seg-rt_v6-rev0!mingw_version!.7z
set mingw_dir=!tools_dir!\mingw64-posix-seh-rt_v6-rev0-!mingw_version!
set mingw_bin_dir=!mingw_dir!\bin
set mingw_exe=!mingw_bin_dir!\gcc.exe
if not exist "!mingw_exe!" (
call :DownloadFile \"https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/!mingw_version!/threads-posix/seh/x86_64-!mingw_version!-release-posix-seh-rt_v6-rev0.7z\" !mingw_zip! || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 !mingw_zip! !mingw_sha256! || exit /B
2021-09-15 11:50:33 +00:00
call :Unzip !mingw_zip! !mingw_dir! || exit /B
call :Move !mingw_dir!\mingw64 !mingw_dir! || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!mingw_exe!" "!mingw_version!" "!mingw_exe_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
)
REM ----------------------------------------------------------------------------
REM nodejs
REM ----------------------------------------------------------------------------
if !install_nodejs! == 1 (
set nodejs_sha256=f7b0e8b0bfcfad7d62eba16fa4db9f085983c12c661bd4c66d8e3bd783befa65
set nodejs_exe_sha256=7f33cbe04cb2940427e6dd97867c1fcf3ddd60911d2ae0260da3cab9f6ea6365
set nodejs_version=16.7.0
set nodejs_zip=!downloads_dir!\nodejs-!nodejs_version!-win-x64.7z
set nodejs_dir=!tools_dir!\nodejs-!nodejs_version!
set nodejs_exe=!nodejs_dir!\node.exe
if not exist "!nodejs_exe!" (
call :DownloadFile "https://nodejs.org/dist/v!nodejs_version!/node-v!nodejs_version!-win-x64.7z" "!nodejs_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!nodejs_zip!" "!nodejs_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
call :Unzip "!nodejs_zip!" "!nodejs_dir!" || exit /B
call :Move "!nodejs_dir!\node-v!nodejs_version!-win-x64" "!nodejs_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!nodejs_exe!" "!nodejs_version!" "!nodejs_exe_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
)
REM ----------------------------------------------------------------------------
REM Python
REM ----------------------------------------------------------------------------
if !install_python3! == 1 (
set python_sha256=93cc3db75dffb4d56b9f64af43294f130f2c222a66de7a1325d0ce8f1ed62e26
set python_exe_sha256=9042daa88b2d3879a51bfabc2d90d4a56da05ebf184b6492a22a46fdc1c936a4
set python_version=3.9.0.2dot
set python_version_nodot=3902
set python_version_dot=3.9.0
2022-01-29 05:55:53 +00:00
set python_zip=!downloads_dir!\win32_Winpython64-!python_version!.zip
2021-09-15 11:50:33 +00:00
set python_dir=!tools_dir!\Winpython64-!python_version_nodot!
set python_exe=!python_dir!\python-3.9.0.amd64\python.exe
if not exist "!python_exe!" (
call :DownloadFile "https://github.com/winpython/winpython/releases/download/3.0.20201028/Winpython64-!python_version!.exe" "!python_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!python_zip!" "!python_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
call :Unzip "!python_zip!" "!python_dir!" || exit /B
call :Move "!python_dir!\WPy64-!python_version_nodot!" "!python_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!python_exe!" "!python_version!" "!python_exe_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
set python_bin_dir=!python_dir!\python-!python_version_dot!.amd64
set python_scripts_bin_dir=!python_bin_dir!\Scripts
)
2022-01-29 05:55:53 +00:00
REM ----------------------------------------------------------------------------
REM RenderDoc
REM ----------------------------------------------------------------------------
if !install_renderdoc! == 1 (
set renderdoc_sha256=a97a9911850c8a93dc1dee8f94e339cd5933310513dddf0216d27cea3a5f25b1
set renderdoc_exe_sha256=27c28b813f01781573507b0d9b47546d323ae8add2695bbd03b941461868a7a2
set renderdoc_version=1.18
set renderdoc_zip=!downloads_dir!\win32_renderdoc-!renderdoc_version!.zip
set renderdoc_dir=!tools_dir!\renderdoc-x64-!renderdoc_version!
set renderdoc_exe=!renderdoc_dir!\qrenderdoc.exe
if not exist "!renderdoc_exe!" (
call :DownloadFile "https://renderdoc.org/stable/!renderdoc_version!/RenderDoc_!renderdoc_version!_64.zip" "!renderdoc_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!renderdoc_zip!" "!renderdoc_sha256!" || exit /B
2022-01-29 05:55:53 +00:00
call :Unzip "!renderdoc_zip!" "!renderdoc_dir!" || exit /B
call :Move "!renderdoc_dir!\RenderDoc_!renderdoc_version!_64" "!renderdoc_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!renderdoc_exe!" "!renderdoc_version!" "!renderdoc_exe_sha256!" || exit /B
2022-01-29 05:55:53 +00:00
)
2021-09-15 11:50:33 +00:00
REM ----------------------------------------------------------------------------
REM Zig
REM ----------------------------------------------------------------------------
if !install_zig! == 1 (
2021-10-16 02:39:57 +00:00
set zig_sha256=43573db14cd238f7111d6bdf37492d363f11ecd1eba802567a172f277d003926
set zig_exe_sha256=465739a787178ded19efab55916b587f3ead2a9cdff8dcaaf1765fe907797917
set zig_version=0.8.1
2021-09-15 11:50:33 +00:00
set zig_file=zig-windows-x86_64-!zig_version!.zip
set zig_zip=!downloads_dir!\win32_!zig_file!
set zig_dir=!tools_dir!\zig-windows-x86_64-!zig_version!
set zig_exe=!zig_dir!\zig.exe
if not exist "!zig_exe!" (
call :DownloadFile "https://ziglang.org/download/!zig_version!/!zig_file!" "!zig_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!zig_zip!" "!zig_sha256!" || exit /B
2021-09-15 11:50:33 +00:00
call :Unzip "!zig_zip!" "!zig_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!zig_exe!" "!zig_version!" "!zig_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :MakeBatchShortcutInBinDir "zig" "!zig_exe!"
2021-09-15 11:50:33 +00:00
)
REM ----------------------------------------------------------------------------
REM QoL/Tools
REM ----------------------------------------------------------------------------
2021-10-15 14:17:19 +00:00
REM ----------------------------------------------------------------------------
REM clink - Bash style tab completion in terminal
REM ----------------------------------------------------------------------------
if !install_clink! == 1 (
set clink_sha256=57618d5fab9f0f777430fde5beceffdfb99cc81cfbd353ca58f41b7faf84eddc
set clink_exe_sha256=e09a338081b83a42e97b60311d9af749baaedb226b155d9e7bd658de1c5a349d
set clink_version=0.4.9
set clink_zip=!downloads_dir!\win32_clink_!clink_version!.zip
set clink_dir=!tools_dir!\clink-!clink_version!
set clink_exe=!clink_dir!\clink_x64.exe
set clink_bat=!clink_dir!\clink.bat
if not exist "!clink_exe!" (
call :DownloadFile "https://github.com/mridgers/clink/releases/download/!clink_version!/clink_!clink_version!.zip" "!clink_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!clink_zip!" "!clink_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :Unzip "!clink_zip!" "!clink_dir!" || exit /B
call :Move "!clink_dir!\clink_!clink_version!" "!clink_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!clink_exe!" "!clink_version!" "!clink_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :MakeBatchShortcutInBinDir "clink" "!clink_bat!"
)
REM ----------------------------------------------------------------------------
REM Dependencies (Walker) - For DLL dependency management
REM ----------------------------------------------------------------------------
if !install_dependency_walker! == 1 (
set dependencies_sha256=44df956dbe267e0a705224c3b85d515fee2adc87509861e24fb6c6b0ea1b86d6
2021-08-19 07:56:31 +00:00
set dependencies_exe_sha256=f9c9d78284d03b0457061cfb33751071c8c1ceeb26bc9b75ae9b7e0465e99858
set dependencies_version=v1.10
2021-08-19 07:56:31 +00:00
set dependencies_zip=!downloads_dir!\win32_dependencies_!dependencies_version!.zip
set dependencies_dir=!tools_dir!\dependencies-!dependencies_version!
2021-08-19 07:56:31 +00:00
set dependencies_exe=!dependencies_dir!\DependenciesGui.exe
if not exist "!dependencies_exe!" (
call :DownloadFile "https://github.com/lucasg/Dependencies/releases/download/!dependencies_version!/Dependencies_x64_Release.zip" "!dependencies_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!dependencies_zip!" "!dependencies_sha256!" || exit /B
call :Unzip "!dependencies_zip!" "!dependencies_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!dependencies_exe!" "!dependencies_version!" "!dependencies_exe_sha256!" || exit /B
)
REM ----------------------------------------------------------------------------
REM everything (void tools search program)
REM ----------------------------------------------------------------------------
if !install_everything_void_tools! == 1 (
set everything_sha256=f61b601acba59d61fb0631a654e48a564db34e279b6f2cc45e20a42ce9d9c466
2021-08-19 07:56:31 +00:00
set everything_exe_sha256=48a17c3c22476f642c2b1ab2da8dfd789e39882997d7a8e266104f7404a0ded9
set everything_version=1.4.1.1009
2021-08-19 07:56:31 +00:00
set everything_zip=!downloads_dir!\win32_everything_v!everything_version!.7z
set everything_dir=!tools_dir!\everything-!everything_version!
2021-08-19 07:56:31 +00:00
set everything_exe=!everything_dir!\everything.exe
if not exist "!everything_exe!" (
call :DownloadFile "https://www.voidtools.com/Everything-!everything_version!.x64.zip" "!everything_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!everything_zip!" "!everything_sha256!" || exit /B
call :Unzip "!everything_zip!" "!everything_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!everything_exe!" "!everything_version!" "!everything_exe_sha256!" || exit /B
)
2020-07-20 13:27:23 +00:00
2021-09-15 03:19:25 +00:00
REM ----------------------------------------------------------------------------
REM fzf
REM ----------------------------------------------------------------------------
if !install_fzf! == 1 (
2022-04-03 00:37:51 +00:00
set fzf_sha256=f0797ceee089017108c80b09086c71b8eec43d4af11ce939b78b1d5cfd202540
set fzf_exe_sha256=5176c4c90957aa7e3d12f91b8ba55acac7524a83998517119ee19b61f4534140
set fzf_version=0.29.0
2021-09-15 03:19:25 +00:00
set fzf_zip=!downloads_dir!\win32_fzf_v!fzf_version!.zip
2021-09-15 11:50:33 +00:00
set fzf_dir=!bin_dir!
2021-09-15 03:19:25 +00:00
set fzf_exe=!fzf_dir!\fzf.exe
2022-04-03 00:37:51 +00:00
if not exist "!fzf_exe!-!fzf_version!.sha256.txt" (
2021-09-15 03:19:25 +00:00
call :DownloadFile "https://github.com/junegunn/fzf/releases/download/!fzf_version!/fzf-!fzf_version!-windows_amd64.zip" "!fzf_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!fzf_zip!" "!fzf_sha256!" || exit /B
2021-09-15 03:19:25 +00:00
call :UnzipAndAlwaysOverwrite "!fzf_zip!" "!fzf_dir!" || exit /B
)
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!fzf_exe!" "!fzf_version!" "!fzf_exe_sha256!" || exit /B
2021-09-15 03:19:25 +00:00
)
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM GVim, Vim Plug, Vim Config
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
if !install_gvim! == 1 (
set gvim_zip=!downloads_dir!\win32_gvim_x64.7z
set gvim_dir=!tools_dir!\GVim
if not exist "!gvim_dir!\gvim.exe" (
call :DownloadFile https://tuxproject.de/projects/vim/complete-x64.7z !gvim_zip! || exit /B
call :Unzip "!gvim_zip!" "!gvim_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
call :CopyAndAlwaysOverwriteFile "!install_dir!\_vimrc" !home_dir!
REM DLL that hooks into GVIM and provides fullscreen with F11
set gvim_fullscreen_dll_sha256=1c83747b67ed73c05d44c1af8222a860bc5a48b56bf54cd6e21465a2deb78456
set gvim_fullscreen_dll=!gvim_dir!\gvim_fullscreen.dll
call :CopyAndAlwaysOverwriteFile "!install_dir!\win32_gvim_fullscreen.dll" "!gvim_fullscreen_dll!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!gvim_fullscreen_dll!" "none" "!gvim_fullscreen_dll_sha256!" || exit /B
set vim_plug_dir=!vim_dir!\autoload
set vim_plug=!vim_plug_dir!\plug.vim
if not exist "!vim_plug_dir!" mkdir "!vim_plug_dir!"
call :DownloadFile "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" "!vim_plug!" || exit /B
)
REM ----------------------------------------------------------------------------
REM Joplin
REM ----------------------------------------------------------------------------
if !install_joplin! == 1 (
set joplin_sha256=2dba85ba6887d9318b10aafda00531f804f311ef9d1c899eefbcba116bf50ed2
set joplin_version=2.6.10
2021-08-19 07:56:31 +00:00
set joplin_dir=!tools_dir!\joplin-x64-!joplin_version!
set joplin_exe=!joplin_dir!\JoplinPortable.exe
2021-08-19 07:56:31 +00:00
if not exist "!joplin_exe!" (
if not exist "!joplin_dir!" mkdir "!joplin_dir!"
call :DownloadFile "https://github.com/laurent22/joplin/releases/download/v!joplin_version!/JoplinPortable.exe" "!joplin_exe!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!joplin_exe!" "!joplin_version!" "!joplin_sha256!" || exit /B
)
REM ----------------------------------------------------------------------------
REM Keypirinha
REM ----------------------------------------------------------------------------
if !install_keypirinha! == 1 (
set keypirinha_sha256=d109a16e6a5cf311abf6d06bbe5b1be3b9ba323b79c32a168628189e10f102a5
2021-08-19 07:56:31 +00:00
set keypirinha_exe_sha256=2d3adb36a04e9fdf94636c9ac5d4c2b754accbfaecd81f4ee7189c3c0edc8af1
set keypirinha_version=2.26
2021-08-19 07:56:31 +00:00
set keypirinha_zip=!downloads_dir!\win32_keypirinha-x64-!keypirinha_version!.7z
set keypirinha_dir=!tools_dir!\keypirinha-x64-!keypirinha_version!
2021-08-19 07:56:31 +00:00
set keypirinha_exe=!keypirinha_dir!\keypirinha.exe
if not exist "!keypirinha_exe!" (
call :DownloadFile "https://github.com/Keypirinha/Keypirinha/releases/download/v!keypirinha_version!/keypirinha-!keypirinha_version!-x64-portable.7z" "!keypirinha_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!keypirinha_zip!" "!keypirinha_sha256!" || exit /B
call :Unzip "!keypirinha_zip!" "!keypirinha_dir!" || exit /B
call :Move "!keypirinha_dir!\keypirinha" "!keypirinha_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!keypirinha_exe!" "!keypirinha_version!" "!keypirinha_exe_sha256!" || exit /B
)
REM ----------------------------------------------------------------------------
REM Misc Tools
REM ----------------------------------------------------------------------------
REM ctags: C/C++ code annotation generator
REM scanmapset: Bind capslock to escape via registry
REM uncap: Bind capslock to escape via run-time program
2021-09-15 11:50:33 +00:00
call :CopyAndAlwaysOverwriteFile "!install_dir!\win32_ctags.exe" "!bin_dir!\ctags.exe" || exit /B
call :CopyAndAlwaysOverwriteFile "!install_dir!\win32_scanmapset.exe" "!bin_dir!\scanmapset.exe" || exit /B
call :CopyAndAlwaysOverwriteFile "!install_dir!\win32_uncap.exe" "!bin_dir!\uncap.exe" || exit /B
2021-12-21 00:02:53 +00:00
call :CopyAndAlwaysOverwriteFile "!install_dir!\clang_format_style_file" "!home_dir!\_clang-format" || exit /B
2021-08-17 08:00:17 +00:00
REM ------------------------------------------------------------------------
REM MobaXTerm
REM ------------------------------------------------------------------------
if !install_mobaxterm! == 1 (
set mobaxterm_sha256=91f80537f12c2ad34a5eba99a285c149781c6d35a144a965ce3aea8a9bc6868c
2021-08-19 07:56:31 +00:00
set mobaxterm_exe_sha256=1053c81b44018d6e6519a9c80d7413f7bb36e9f6e43b3da619b2229aa362a522
2021-08-17 08:00:17 +00:00
set mobaxterm_version=21.2
2021-08-19 07:56:31 +00:00
2021-08-17 08:00:17 +00:00
set mobaxterm_zip=!downloads_dir!\win32_mobaxterm-!mobaxterm_version!.zip
set mobaxterm_dir=!tools_dir!\mobaxterm-!mobaxterm_version!
2021-08-19 07:56:31 +00:00
set mobaxterm_exe=!mobaxterm_dir!\MobaXterm_Personal_21.2.exe
if not exist "!mobaxterm_exe!" (
2021-08-17 08:00:17 +00:00
call :DownloadFile "https://download.mobatek.net/2122021051924233/MobaXterm_Portable_v!mobaxterm_version!.zip" !mobaxterm_zip! || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 !mobaxterm_zip! !mobaxterm_sha256! || exit /B
2021-08-17 08:00:17 +00:00
call :Unzip !mobaxterm_zip! !mobaxterm_dir! || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!mobaxterm_exe!" "!mobaxterm_version!" "!mobaxterm_exe_sha256!" || exit /B
2021-08-19 07:56:31 +00:00
)
2021-07-31 11:41:17 +00:00
REM ----------------------------------------------------------------------------
REM O&O ShutUp10 (Privacy Tool for Windows)
REM ----------------------------------------------------------------------------
if !install_ooshutup10! == 1 (
2021-08-19 07:56:31 +00:00
REM We don't do SHA256 here since we don't get a versioned URL, this can
REM change at a whim and it'd be painful to have to reupdate the script
REM everytime.
2021-07-31 11:41:17 +00:00
set oo_shutup_10_dir=!tools_dir!\oo_shutup_10
set oo_shutup_10_file=!oo_shutup_10_dir!\oo_shutup_10.exe
2021-08-19 07:56:31 +00:00
2021-07-31 11:41:17 +00:00
if not exist "!oo_shutup_10_file!" (
if not exist "!oo_shutup_10_dir!" mkdir "!oo_shutup_10_dir!"
call :DownloadFile "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" "!oo_shutup_10_file!" || exit /B
)
)
2021-07-16 02:15:28 +00:00
REM ----------------------------------------------------------------------------
REM ProcessHacker
REM ----------------------------------------------------------------------------
if !install_process_hacker! == 1 (
set process_hacker_sha256=e8836365abab7478d8e4c2d3fb3bb1fce82048cd4da54bab41cacbae1f45b1ff
2021-08-19 07:56:31 +00:00
set process_hacker_exe_sha256=46367bfcf4b150da573a74d91aa2f7caf7a0789741bc65878a028e91ffbf5e42
set process_hacker_version=3.0.4212
2021-08-19 07:56:31 +00:00
set process_hacker_zip=!downloads_dir!\win32_process_hacker-!process_hacker_version!.zip
set process_hacker_dir=!tools_dir!\process_hacker-!process_hacker_version!
2021-08-19 07:56:31 +00:00
set process_hacker_exe=!process_hacker_dir!\64bit\ProcessHacker.exe
if not exist "!process_hacker_exe!" (
call :DownloadFile "https://ci.appveyor.com/api/buildjobs/8say005q9xy48cc3/artifacts/processhacker-!process_hacker_version!-bin.zip" "!process_hacker_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!process_hacker_zip!" "!process_hacker_sha256!" || exit /B
call :Unzip "!process_hacker_zip!" "!process_hacker_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!process_hacker_exe!" "!process_hacker_version!" "!process_hacker_exe_sha256!" || exit /B
2021-07-16 02:15:28 +00:00
)
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
REM ripgrep
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
if !install_ripgrep! == 1 (
set rg_sha256=a47ace6f654c5ffa236792fc3ee3fefd9c7e88e026928b44da801acb72124aa8
2021-08-19 07:56:31 +00:00
set rg_exe_sha256=ab5595a4f7a6b918cece0e7e22ebc883ead6163948571419a1dd5cd3c7f37972
set rg_version=13.0.0
2021-08-19 07:56:31 +00:00
set rg_zip=!downloads_dir!\win32_rg_v!rg_version!.zip
set rg_dir=!tools_dir!\ripgrep-!rg_version!
2021-08-19 07:56:31 +00:00
set rg_exe=!rg_dir!\rg.exe
if not exist "!rg_exe!" (
call :DownloadFile "https://github.com/BurntSushi/ripgrep/releases/download/!rg_version!/ripgrep-!rg_version!-x86_64-pc-windows-msvc.zip" "!rg_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!rg_zip!" "!rg_sha256!" || exit /B
call :Unzip "!rg_zip!" "!rg_dir!" || exit /B
call :Move "!rg_dir!\ripgrep-!rg_version!-x86_64-pc-windows-msvc" "!rg_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!rg_exe!" "!rg_version!" "!rg_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :MakeBatchShortcutInBinDir "rg" "!rg_exe!"
2021-07-16 02:15:28 +00:00
)
2021-08-17 11:57:31 +00:00
REM ----------------------------------------------------------------------------
REM Ethereum
REM ----------------------------------------------------------------------------
2021-08-18 13:25:56 +00:00
REM ----------------------------------------------------------------------------
REM geth
REM ----------------------------------------------------------------------------
if !install_geth! == 1 (
2021-09-17 00:15:03 +00:00
set geth_md5=a975ba6591577b6f5b19f4fd8757fd03
set geth_exe_sha256=7d9fd1566f2fd07c741a64aad2865b25f8cd82388e15bed2d68e92105b1e0fd3
set geth_version=1.10.8-26675454
2021-08-19 07:56:31 +00:00
2021-08-18 13:25:56 +00:00
set geth_zip=!downloads_dir!\win32_geth-amd64-v!geth_version!.zip
set geth_dir=!tools_dir!\geth-windows-amd64-!geth_version!
2021-08-19 07:56:31 +00:00
set geth_exe=!geth_dir!\geth.exe
2021-12-21 00:02:53 +00:00
set geth_gpg_key=!downloads_dir!\..\geth_windows_builder_gpg_key.asc
2021-08-19 07:56:31 +00:00
set geth_gpg_sig=!geth_zip!.asc
if not exist "!geth_exe!" (
2021-08-18 13:25:56 +00:00
call :DownloadFile "https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-!geth_version!.zip" "!geth_zip!" || exit /B
2021-08-19 07:56:31 +00:00
call :DownloadFile "https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-!geth_version!.zip.asc" "!geth_gpg_sig! || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyFileMD5 "!geth_zip!" "!geth_version!" "!geth_md5!" || exit /B
2021-08-18 13:25:56 +00:00
gpg --import "!geth_gpg_key!" || exit /B
gpg --verify "!geth_gpg_sig!" "!geth_zip!" || exit /B
call :Unzip "!geth_zip!" "!geth_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!geth_exe!" "!geth_version!" "!geth_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :MakeBatchShortcutInBinDir "geth" "!geth_exe!"
2021-08-18 13:25:56 +00:00
)
2021-08-17 11:57:31 +00:00
REM ----------------------------------------------------------------------------
REM remix_ide
REM ----------------------------------------------------------------------------
if !install_remix_ide! == 1 (
set remix_ide_sha256=19a56cb79459e612d8cbdd6b6729d06c7080d983537d2494a15fd25ea67b2499
2021-08-19 07:56:31 +00:00
set remix_ide_exe_sha256=960bc454e37a718b86018b596d14ed977d1a8e1a5bc57b5afd573fc5e9b84a47
2021-08-17 11:57:31 +00:00
set remix_ide_version=1.3.1
2021-08-19 07:56:31 +00:00
2021-08-17 11:57:31 +00:00
set remix_ide_zip=!downloads_dir!\win32_remix-ide-amd64-v!remix_ide_version!.zip
set remix_ide_dir=!tools_dir!\remix-ide-!remix_ide_version!
2021-08-19 07:56:31 +00:00
set remix_ide_exe=!remix_ide_dir!\Remix IDE.exe
if not exist "!remix_ide_exe!" (
2021-08-17 11:57:31 +00:00
call :DownloadFile "https://github.com/ethereum/remix-desktop/releases/download/v!remix_ide_version!/Remix-IDE-!remix_ide_version!-win.zip" "!remix_ide_zip!" || exit /B
2022-04-03 00:37:51 +00:00
call :VerifyZipSHA256 "!remix_ide_zip!" "!remix_ide_sha256!" || exit /B
2021-08-17 11:57:31 +00:00
call :Unzip "!remix_ide_zip!" "!remix_ide_dir!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!remix_ide_exe!" "!remix_ide_version!" "!remix_ide_exe_sha256!" || exit /B
2021-08-17 11:57:31 +00:00
)
REM ----------------------------------------------------------------------------
REM solidity
REM ----------------------------------------------------------------------------
if !install_solidity! == 1 (
2021-10-15 14:17:19 +00:00
set solidity_exe_sha256=82db83111c6e2c892179486cb7050d85f1517bf851027607eb7f4e589e714bc5
2021-08-17 11:57:31 +00:00
set solidity_version=0.8.7+commit.e28d00a7
2021-08-19 07:56:31 +00:00
2021-08-17 11:57:31 +00:00
set solidity_dir=!tools_dir!\solidity-windows-amd64-!solidity_version!
set solidity_exe=!solidity_dir!\solc.exe
2021-08-19 07:56:31 +00:00
2021-08-17 11:57:31 +00:00
if not exist "!solidity_exe!" (
if not exist "!solidity_dir!" mkdir "!solidity_dir!"
call :DownloadFile "https://binaries.soliditylang.org/windows-amd64/solc-windows-amd64-v!solidity_version!.exe" "!solidity_exe!" || exit /B
)
2021-08-19 07:56:31 +00:00
2022-04-03 00:37:51 +00:00
call :VerifyFileSHA256 "!solidity_exe!" "!solidity_version!" "!solidity_exe_sha256!" || exit /B
2021-10-15 14:17:19 +00:00
call :MakeBatchShortcutInBinDir "solc" "!solidity_exe!"
2021-08-17 11:57:31 +00:00
)
REM ----------------------------------------------------------------------------
REM Super Terminal
REM ----------------------------------------------------------------------------
2021-07-16 00:21:11 +00:00
set terminal_script=!root_dir!\win32_terminal.bat
set msvc_script=!tools_dir!\MSVC-2019-v16.9.2-VC-v14.28.29910-Win10-SDK-v10.0.19041.0-x64\msvc_env_x64.bat
echo @echo off> "!terminal_script!"
2021-08-19 09:12:31 +00:00
echo set APPDATA=%%~dp0!home_dir!\AppData>> "!terminal_script!"
echo set HOME=%%~dp0!home_dir!>> "!terminal_script!"
echo set HOMEPATH=%%~dp0!home_dir!>> "!terminal_script!"
echo set USERPROFILE=%%~dp0!home_dir!>> "!terminal_script!"
2021-10-15 14:17:19 +00:00
echo set LOCALAPPDATA=%%~dp0!home_dir!\AppData\Local>> "!terminal_script!"
echo set PATH=%%~dp0!gpg_w32_bin_dir!;%%PATH%%>> "!terminal_script!"
2021-09-15 11:50:33 +00:00
echo set PATH=%%~dp0!bin_dir!;%%PATH%%>> "!terminal_script!"
2021-09-15 03:19:25 +00:00
if !install_fzf! == 1 (
echo set FZF_DEFAULT_OPTS=--multi --layout=reverse>> "!terminal_script!"
REM Use RG for FZF to make it ultra fast
if !install_ripgrep! == 1 (
echo set FZF_DEFAULT_COMMAND=rg --files --no-ignore-vcs --hidden>> "!terminal_script!"
)
)
2021-09-15 11:50:33 +00:00
if !install_git! == 1 (
echo set PATH=%%~dp0!git_dir!\cmd;%%PATH%%>> "!terminal_script!"
echo set PATH=%%~dp0!git_dir!\mingw64\bin;%%PATH%%>> "!terminal_script!"
echo set PATH=%%~dp0!git_dir!\usr\bin;%%PATH%%>> "!terminal_script!"
)
if !install_gvim! == 1 ( echo set PATH=%%~dp0!gvim_dir!;%%PATH%%>> "!terminal_script!" )
if !install_llvm_clang! == 1 ( echo set PATH=%%~dp0!llvm_bin_dir!;%%PATH%%>> "!terminal_script!" )
if !install_mingw64! == 1 ( echo set PATH=%%~dp0!mingw_bin_dir!;%%PATH%%>> "!terminal_script!" )
2021-08-19 07:56:31 +00:00
if !install_nodejs! == 1 ( echo set PATH=%%~dp0!nodejs_dir!;%%PATH%%>> "!terminal_script!" )
if !install_python3! == 1 (
echo set PATH=%%~dp0!python_bin_dir!;%%PATH%%>> "!terminal_script!"
echo set PATH=%%~dp0!python_scripts_bin_dir!;%%PATH%%>> "!terminal_script!"
echo set PYTHONHOME=%%~dp0!python_bin_dir!>> "!terminal_script!"
)
echo set PATH=%%~dp0!zip7_dir!;%%PATH%%>> "!terminal_script!"
echo if exist "%%~dp0!msvc_script!" call "%%~dp0!msvc_script!">> "!terminal_script!"
2021-09-24 01:13:03 +00:00
echo if exist "%%~dp0win32_terminal_user_config.bat" call "%%~dp0win32_terminal_user_config.bat">> "!terminal_script!"
2021-10-15 14:17:19 +00:00
if !install_wezterm! == 1 (
echo start "" /MAX "%%~dp0!wezterm_exe!">> "!terminal_script!"
2021-09-29 00:28:15 +00:00
echo exit>> "!terminal_script!"
)
2021-07-15 07:39:40 +00:00
2021-07-16 02:15:28 +00:00
REM ----------------------------------------------------------------------------
REM Background Application Scripts
REM ----------------------------------------------------------------------------
set terminal_script=!root_dir!\win32_start_background_apps.bat
echo @echo off> "!terminal_script!"
2021-10-15 14:17:19 +00:00
if !install_everything_void_tools! == 1 echo start "" "%%~dp0!everything_dir!\everything.exe">> "!terminal_script!"
if !install_keypirinha! == 1 echo start "" "%%~dp0!keypirinha_dir!\keypirinha.exe">> "!terminal_script!"
2021-07-16 02:15:28 +00:00
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
2020-11-24 04:15:27 +00:00
REM CTags Helper Script
2021-07-15 07:39:40 +00:00
REM ----------------------------------------------------------------------------
2021-09-15 11:50:33 +00:00
set ctags_file=!bin_dir!\ctags_cpp.bat
echo @echo off> "!ctags_file!"
echo ctags --c++-kinds=+p --fields=+iaS --extras=+q %%*>> !ctags_file!
2020-11-24 04:15:27 +00:00
2021-10-18 09:32:46 +00:00
echo - Setup complete. Launch !root_dir!\win32_terminal.bat [or restart Wezterm instance if you're updating an existing installation]
echo - (Optional) A custom font is provided and requires manual intallation in Windows at !jetbrains_mono_file!
echo This font will be used in GVIM if it's available.
pause
exit /B
2020-11-03 02:52:22 +00:00
2021-07-15 07:39:40 +00:00
REM ------------------------------------------------------------------------------------------------
2020-11-04 14:27:24 +00:00
REM Functions
2021-07-15 07:39:40 +00:00
REM ------------------------------------------------------------------------------------------------
2020-11-04 14:27:24 +00:00
:DownloadFile
set url=%~1
set dest_file=%~2
2021-07-15 07:39:40 +00:00
set msg=[Download File] !url! to !dest_file!
2020-10-19 22:16:04 +00:00
2021-07-15 07:39:40 +00:00
if exist !dest_file! (
echo - [Cached] !msg!
) else (
echo - !msg!
call powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest !url! -OutFile !dest_file! -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox"
)
2020-10-19 22:16:04 +00:00
2021-07-15 07:39:40 +00:00
if not exist !dest_file! echo [Download File] Failed to download file from !url!
exit /B !ERRORLEVEL!
REM ------------------------------------------------------------------------------------------------
2021-08-19 07:56:31 +00:00
:CopyAndAlwaysOverwriteFile
2020-11-04 14:27:24 +00:00
set src_file=%~1
set dest_file=%~2
2021-08-18 13:25:56 +00:00
2021-08-19 07:56:31 +00:00
echo - [Copy] !src_file! to !dest_file!
call copy /Y !src_file! !dest_file! > nul
2020-10-20 23:49:24 +00:00
2021-07-15 07:39:40 +00:00
exit /B !ERRORLEVEL!
2020-11-03 02:52:22 +00:00
2021-07-15 07:39:40 +00:00
REM ------------------------------------------------------------------------------------------------
2020-11-04 14:27:24 +00:00
:Unzip
set zip_file=%~1
set dest=%~2
2021-07-15 07:39:40 +00:00
set msg=[Unzip] !zip_file! to !dest!
2020-11-03 03:32:35 +00:00
2021-07-15 07:39:40 +00:00
if exist !dest! (
echo - [Cached] !msg!
) else (
echo - !msg!
call !zip7_dir!\7z.exe x -y -spe -o!dest! !zip_file!
2021-07-15 07:39:40 +00:00
)
2021-07-16 02:15:28 +00:00
exit /B !ERROLEVEL!
2021-07-15 07:39:40 +00:00
2021-09-15 03:19:25 +00:00
REM ------------------------------------------------------------------------------------------------
:UnzipAndAlwaysOverwrite
set zip_file=%~1
set dest=%~2
set msg=[Unzip] !zip_file! to !dest!
echo - !msg!
call !zip7_dir!\7z.exe x -y -spe -o!dest! !zip_file!
exit /B !ERROLEVEL!
2021-07-15 07:39:40 +00:00
REM ------------------------------------------------------------------------------------------------
2022-04-03 00:37:51 +00:00
:VerifyZipSHA256
2021-07-15 07:39:40 +00:00
set file=%~1
set expected_sha256=%~2
REM Calculate hash
set calculated_sha256_file=!file!.sha256.txt
2021-08-19 07:56:31 +00:00
call powershell "$FileHash = Get-FileHash -algorithm sha256 \"!file!\"; $FileHash.Hash.ToLower()" > !calculated_sha256_file!
2021-07-15 07:39:40 +00:00
REM Verify Hash
set /p actual_sha256=< !calculated_sha256_file!
if "!expected_sha256!" neq "!actual_sha256!" (
2021-07-16 02:15:28 +00:00
echo - [Verify] !file!
2021-08-18 13:25:56 +00:00
echo sha256 hash does not match, failing.
2021-07-16 02:15:28 +00:00
echo Expected: !expected_sha256!
echo Calculated: !actual_sha256!
2021-07-15 07:39:40 +00:00
exit /B -1
) else (
echo - [Verify] !file! Hash OK: !expected_sha256!
2021-07-15 07:39:40 +00:00
exit /B 0
)
2022-04-03 00:37:51 +00:00
REM ------------------------------------------------------------------------------------------------
:VerifyFileSHA256
set file=%~1
set version=%~2
set expected_sha256=%~3
REM Calculate hash
set calculated_sha256_file=!file!-!version!.sha256.txt
call powershell "$FileHash = Get-FileHash -algorithm sha256 \"!file!\"; $FileHash.Hash.ToLower()" > !calculated_sha256_file!
REM Verify Hash
set /p actual_sha256=< !calculated_sha256_file!
if "!expected_sha256!" neq "!actual_sha256!" (
echo - [Verify] !file!
echo sha256 hash does not match, failing.
echo Expected: !expected_sha256!
echo Calculated: !actual_sha256!
exit /B -1
) else (
echo - [Verify] !file! Hash OK: !expected_sha256!
exit /B 0
)
2021-08-18 13:25:56 +00:00
REM ------------------------------------------------------------------------------------------------
:VerifyFileMD5
set file=%~1
2022-04-03 00:37:51 +00:00
set version=%~2
set expected_md5=%~3
2021-08-18 13:25:56 +00:00
REM Calculate hash
2022-04-03 00:37:51 +00:00
set calculated_md5_file=!file!-!version!.md5.txt
2021-08-19 07:56:31 +00:00
call powershell "$FileHash = Get-FileHash -algorithm md5 \"!file!\"; $FileHash.Hash.ToLower()" > !calculated_md5_file!
2021-08-18 13:25:56 +00:00
REM Verify Hash
set /p actual_md5=< !calculated_md5_file!
if "!expected_md5!" neq "!actual_md5!" (
echo - [Verify] !file!
echo md5 hash does not match, failing.
echo Expected: !expected_md5!
echo Calculated: !actual_md5!
exit /B -1
) else (
echo - [Verify] !file! Hash OK: !expected_md5!
exit /B 0
)
REM ------------------------------------------------------------------------------------------------
:Move
set src=%~1
set dest=%~2
if exist !src! robocopy !src! !dest! /E /MOVE /NP /NJS /NJS /NS /NC /NFL /NDL
2021-07-16 02:15:28 +00:00
exit /B 0
2021-10-15 14:17:19 +00:00
REM ------------------------------------------------------------------------------------------------
:MakeBatchShortcutInBinDir
REM NOTE we make a batch file instead of a symlink because symlinks require
REM admin privileges in windows ...
set script_name=%~1
set executable=%~2
echo @echo off> "!bin_dir!\!script_name!.bat"
echo %%~dp0..\..\!executable! %%*>> "!bin_dir!\!script_name!.bat"
exit /B 0