From c5f971f10c38985403b4d05af2c9c05e07f28a75 Mon Sep 17 00:00:00 2001 From: doyle Date: Tue, 3 Nov 2020 13:52:22 +1100 Subject: [PATCH] python update --- Installer/_vimrc | 6 +- Installer/win32_cmder_user_profile.cmd | 5 +- Installer/win32_gvim_fullscreen.dll | Bin 78848 -> 77824 bytes .../Compiler}/generate_msvc17_toolchain.bat | 0 win32_cleanup.bat | 6 + win32_install.bat | 174 ++++++++++-------- 6 files changed, 110 insertions(+), 81 deletions(-) rename {Compiler => Tools/Compiler}/generate_msvc17_toolchain.bat (100%) create mode 100644 win32_cleanup.bat diff --git a/Installer/_vimrc b/Installer/_vimrc index c76a900..236fcac 100644 --- a/Installer/_vimrc +++ b/Installer/_vimrc @@ -186,7 +186,7 @@ nnoremap :cp " Fullscreen if s:running_windows - noremap :call libcallnr('gvim_fullscreen.dll', 'ToggleFullscreen', 0) + noremap :call libcallnr('gvim_fullscreen.dll', 'ToggleFullScreen', 0) endif " ============================================================================== @@ -211,8 +211,8 @@ noremap :=printf("Leaderf! rg -e %s ", expand("")) " Clang Format " ============================================================================== if s:running_windows - map :py3f $home\.vim\clang-format.py - imap :py3f $home\.vim\clang-format.pyi + map :py3f $home\vimfiles\clang-format.py + imap :py3f $home\vimfiles\clang-format.pyi else map :py3f ~/.vim/clang-format.py imap :py3f ~/.vim/clang-format.pyi diff --git a/Installer/win32_cmder_user_profile.cmd b/Installer/win32_cmder_user_profile.cmd index bc27e8a..7e4c65c 100644 --- a/Installer/win32_cmder_user_profile.cmd +++ b/Installer/win32_cmder_user_profile.cmd @@ -17,8 +17,9 @@ :: %ccall% "/customOption" "command/program" @echo off -set PATH=%cmder_root%\bin\python;%cmder_root%\bin\python\Scripts;%PATH% set HOME=%cmder_root%\..\Home set HOMEPATH=%cmder_root%\..\Home set USERPROFILE=%cmder_root%\..\Home -alias gvim=%cmder_root%\..\GVim\gVimPortable.exe $* +call %cmder_root%\..\Tools\WPy64-3902\scripts\env.bat + +alias gvim=%cmder_root%\..\Tools\GVim\gvim_noOLE.exe $* diff --git a/Installer/win32_gvim_fullscreen.dll b/Installer/win32_gvim_fullscreen.dll index a07352fbbdebe3d8d8fe0b2207268bcd33c27cea..5f862483cb9f9f514792c11493598533a5dc56db 100644 GIT binary patch literal 77824 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�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 diff --git a/Compiler/generate_msvc17_toolchain.bat b/Tools/Compiler/generate_msvc17_toolchain.bat similarity index 100% rename from Compiler/generate_msvc17_toolchain.bat rename to Tools/Compiler/generate_msvc17_toolchain.bat diff --git a/win32_cleanup.bat b/win32_cleanup.bat new file mode 100644 index 0000000..cd3331b --- /dev/null +++ b/win32_cleanup.bat @@ -0,0 +1,6 @@ +rmdir /Q /S Cmder +rmdir /Q /S Tools/winpython39_x64 +rmdir /Q /S Tools/GVim +rmdir /Q /S Tools/Compiler/zig-x86_64 +rmdir /Q /S Tools/Compiler/generate_msvc17_toolchain.bat +rmdir /Q /S GVim diff --git a/win32_install.bat b/win32_install.bat index 7d62ba7..df89b67 100644 --- a/win32_install.bat +++ b/win32_install.bat @@ -1,134 +1,156 @@ @echo off setlocal +set root=%~dp0 +set home=%root%\home +set cmder_root=%root%\Cmder +set installer_root=%root%\Installer +set vim_root=%home%\vimfiles +set tools_root=%root%\Tools +set compiler_root=%tools_root%\Compiler + +if not exist %home% mkdir %home% +if not exist %installer_root% mkdir %installer_root% +if not exist %tools_root% mkdir %tools_root% +if not exist %compiler_root% mkdir %compiler_root% + REM REM Cmder REM set cmder_version=v1.3.16 set cmder_url=https://github.com/cmderdev/cmder/releases/download/%cmder_version%/cmder.7z -set cmder_zip=Installer\win32_cmder_%cmder_version%.7z -set cmder_install_path=Cmder +set cmder_zip=%installer_root%\win32_cmder_%cmder_version%.7z echo - Downloading from %cmder_url% to %cmder_zip% if not exist "%cmder_zip%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %cmder_url% -OutFile %cmder_zip%" if not exist "%cmder_zip%" echo Failed to download cmder, exiting. if not exist "%cmder_zip%" goto :eof -echo - Extracting %cmder_zip% to %cmder_install_path% -if not exist "%cmder_install_path%" Installer\win32_7za.exe x -y -o%cmder_install_path% %cmder_zip% > NUL +echo - Extracting %cmder_zip% to %cmder_root% +if not exist "%cmder_root%" %installer_root%\win32_7za.exe x -y -o%cmder_root% %cmder_zip% > NUL REM REM Cmder User Profile REM -set cmder_user_profile=Installer\win32_cmder_user_profile.cmd -set cmder_user_profile_install_path=%cmder_root%\config -set cmder_user_profile_install_dest=%cmder_user_profile_install_path%\user_profile.cmd +set cmder_user_profile=%installer_root%\win32_cmder_user_profile.cmd +set cmder_user_profile_install_dir=%cmder_root%\config +set cmder_user_profile_install_file=%cmder_user_profile_install_dir%\user_profile.cmd -echo - Copy %cmder_user_profile% to %cmder_user_profile_install_path% -if not exist "%cmder_user_profile_install_path%" mkdir "%cmder_user_profile_install_path%" -copy /Y %cmder_user_profile% %cmder_user_profile_install_dest% > NUL +echo - Copy %cmder_user_profile% to %cmder_user_profile_install_dir% +if not exist "%cmder_user_profile_install_dir%" mkdir "%cmder_user_profile_install_dir%" +copy /Y %cmder_user_profile% %cmder_user_profile_install_file% > NUL REM REM GVim REM -set vim_install_path=GVim -set vim_zip=Installer\win32_GVim_v8.2.paf.7z +set gvim_url=https://tuxproject.de/projects/vim/complete-x64.7z +set gvim_zip=%installer_root%\win32_gvim_x64.7z +set gvim_dir=%tools_root%\GVim -echo - Extracting %vim_zip% to %vim_install_path% -if not exist "%vim_install_path%" Installer\win32_7za.exe x -y -o%vim_install_path% %vim_zip% > NUL +echo - Downloading from %gvim_url% to %gvim_zip% +if not exist "%gvim_zip%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %gvim_url% -OutFile %gvim_zip%" +if not exist "%gvim_zip%" echo Failed to download GVim, exiting. +if not exist "%gvim_zip%" goto :eof + +if not exist %gvim_dir% %installer_root%\win32_7za.exe x -y -o%gvim_dir% %gvim_zip% > NUL REM REM Vim Plug REM -set vim_root=GVim\Data\settings set vim_plug_url=https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim -set vim_plug_install_path=%vim_root%\vimfiles\autoload -set vim_plug_file=%vim_plug_install_path%\plug.vim +set vim_plug_install_dir=%vim_root%\autoload +set vim_plug_file=%vim_plug_install_dir%\plug.vim +if not exist "%vim_plug_install_dir%" mkdir "%vim_plug_install_dir%" -echo - Downloading from %vim_plug_url% to %vim_plug_install_path% -if not exist "%vim_plug_install_path%" mkdir "%vim_plug_install_path%" +echo - Downloading from %vim_plug_url% to %vim_plug_install_dir% if not exist "%vim_plug_file%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %vim_plug_url% -OutFile %vim_plug_file%" +if not exist "%vim_plug_file%" echo Failed to download Vim Plug, exiting. +if not exist "%vim_plug_file%" goto :eof REM REM GVim Fullscreen DLL REM -set gvim_fullscreen_dll=Installer\win32_gvim_fullscreen.dll -set gvim_fullscreen_dll_install_path=GVim\App\vim\vim80\gvim_fullscreen.dll -echo - Copy %gvim_fullscreen_dll% to %gvim_fullscreen_dll_install_path% -copy /Y %gvim_fullscreen_dll% %gvim_fullscreen_dll_install_path% +set gvim_fullscreen_dll=%installer_root%\win32_gvim_fullscreen.dll +set gvim_fullscreen_dll_install=%gvim_dir%\gvim_fullscreen.dll +echo - Copy %gvim_fullscreen_dll% to %gvim_fullscreen_dll_install% +copy /Y %gvim_fullscreen_dll% %gvim_fullscreen_dll_install% REM REM vimrc REM -echo - Copy Installer\_vimrc to %vim_root% -copy /Y Installer\_vimrc %vim_root% > NUL +echo - Copy %installer_root%\_vimrc to %home% +copy /Y %installer_root%\_vimrc %home% > NUL REM REM Clang Format REM -set clang_format_url=https://raw.githubusercontent.com/llvm-mirror/clang/master/tools/clang-format/clang-format.py -set clang_format_path=%vim_root%\.vim -set clang_format_file=%clang_format_path%\clang-format.py -echo - Downloading from %clang_format_url% to %clang_format_path% -if not exist "%clang_format_path%" mkdir "%clang_format_path%" +set clang_format_url=https://raw.githubusercontent.com/llvm/llvm-project/master/clang/tools/clang-format/clang-format.py +set clang_format_file=%vim_root%\clang-format.py +echo - Downloading from %clang_format_url% to %vim_root% if not exist "%clang_format_file%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %clang_format_url% -OutFile %clang_format_file%" +if not exist "%clang_format_file%" echo Failed to download Clang-Format, exiting. +if not exist "%clang_format_file%" goto :eof -echo - Copy Installer\win32_clang_format.exe to %cmder_install_path%\bin\clang-format.exe -copy /Y Installer\win32_clang_format.exe %cmder_install_path%\bin\clang-format.exe - -REM -REM Python -REM -set python_version=3.6.5 -set python_zip=python-%python_version%-embed-win32.zip -set python_url=https://www.python.org/ftp/python/%python_version%/%python_zip% -set python_zip_dest=Installer\%python_zip% -set python_dest=%cmder_root%\bin\python - -echo - Downloading from %python_url% to %python_zip_dest% -if not exist "%python_zip_dest%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %python_url% -OutFile %python_zip_dest%" - -echo - Unzip %python_zip_dest% to %python_dest% -if not exist "%python_dest%" Installer\win32_7za.exe x -y -o%python_dest% %python_zip_dest% > NUL - -REM Python Pip Setup -set python_pth_file=Installer\win32_python36._pth -set python_pth_dest_file=%python_dest%\python36._pth -echo - Copy %python_pth_file% to %python_pth_dest_file% -copy /Y %python_pth_file% %python_pth_dest_file% > NUL - -REM Python Pip -set python_pip_url=https://bootstrap.pypa.io/get-pip.py -set python_pip_file=%python_dest%\get-pip.py -echo - Downloading from %python_pip_url% to %python_pip_file% -if not exist "%python_pip_file%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %python_pip_url% -OutFile %python_pip_file%" -if not exist "%python_dest%\Scripts\pip.exe" %python_dest%\python %python_pip_file% +echo - Copy Installer\win32_clang_format.exe to %cmder_root%\bin\clang-format.exe +copy /Y %installer_root%\win32_clang_format.exe %cmder_root%\bin\clang-format.exe REM REM ctags, scanmapset (bind capslock to escape via registry), uncap (bind capslock to escape whilst program running shim) REM -set ctags_path=%cmder_install_path%\bin\ctags.exe -set scanmapset_path=%cmder_install_path%\bin\scanmapset.exe -set uncap_path=%cmder_install_path%\bin\uncap.exe +set ctags_dir=%cmder_root%\bin\ctags.exe +set scanmapset_dir=%cmder_root%\bin\scanmapset.exe +set uncap_dir=%cmder_root%\bin\uncap.exe -set ctags_file=Installer\win32_ctags.exe -set scanmapset_file=Installer\win32_scanmapset.exe -set uncap_file=Installer\win32_uncap.exe +set ctags_file=%installer_root%\win32_ctags.exe +set scanmapset_file=%installer_root%\win32_scanmapset.exe +set uncap_file=%installer_root%\win32_uncap.exe -echo - Copy %ctags_file% to %ctags_path% -echo - Copy %scanmapset_file% to %scanmapset_path% -echo - Copy %uncap_file% to %uncap_path% +echo - Copy %ctags_file% to %ctags_dir% +echo - Copy %scanmapset_file% to %scanmapset_dir% +echo - Copy %uncap_file% to %uncap_dir% -copy /Y %ctags_file% %ctags_path% -copy /Y %scanmapset_file% %scanmapset_path% -copy /Y %uncap_file% %uncap_path% +copy /Y %ctags_file% %ctags_dir% +copy /Y %scanmapset_file% %scanmapset_dir% +copy /Y %uncap_file% %uncap_dir% REM REM ripgrep REM -set rg_path=%cmder_install_path%\bin -set rg_zip=Installer\win32_rg_v12.1.1.7z -echo - Extracting %rg_zip% to %rg_path% -if not exist "%rg_path%\rg.exe" Installer\win32_7za.exe x -y -o%rg_path% %rg_zip% > NUL +set rg_dir=%cmder_root%\bin +set rg_zip=%installer_root%\win32_rg_v12.1.1.7z +echo - Extracting %rg_zip% to %rg_dir% +if not exist "%rg_dir%\rg.exe" %installer_root%\win32_7za.exe x -y -o%rg_dir% %rg_zip% > NUL if not exist %cmder_root%\..\Home mkdir %cmder_root%\..\Home + +REM +REM Zig +REM +set zig_version=0.6.0 +set zig_zip=zig-windows-x86_64-%zig_version%.zip +set zig_url=https://ziglang.org/download/%zig_version%/%zig_zip% +set zig_zip_installer=%installer_root%\win32_%zig_zip% +set zig_zip_install_path=%compiler_root%\zig-x86_64 + +echo - Downloading from %zig_url% to %zig_zip_installer% +if not exist "%zig_zip_installer%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %zig_url% -OutFile %zig_zip_installer%" +if not exist "%zig_zip_installer%" echo Failed to download Zig, exiting. +if not exist "%zig_zip_installer%" goto :eof + +echo - Unzip %zig_zip_installer% to %zig_zip_install_path% +if not exist %zig_zip_install_path% %installer_root%\win32_7za.exe x -y -o%zig_zip_install_path% %zig_zip_installer% > NUL + +REM +REM Python +REM +set python_url=https://github.com/winpython/winpython/releases/download/3.0.20201028/Winpython64-3.9.0.2dot.exe +set python_zip_installer=%installer_root%\win32_Winpython64dot.exe +set python_zip_install_path=%tools_root%\WPy64-3902 + +echo - Downloading from %python_url% to %python_zip_installer% +if not exist "%python_zip_installer%" powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest %python_url% -OutFile %python_zip_installer%" +if not exist "%python_zip_installer%" echo Failed to download Zig, exiting. +if not exist "%python_zip_installer%" goto :eof + +echo - Unzip %python_zip_installer% to %python_zip_install_path% +if not exist %python_zip_install_path% %installer_root%\win32_7za.exe x -y -o%tools_root% %python_zip_installer% > NUL