cmder/vendor/init.bat

549 lines
18 KiB
Batchfile
Raw Normal View History

@echo off
2018-11-11 21:04:35 +08:00
set CMDER_INIT_START=%time%
2022-10-18 19:50:35 +08:00
:: Init Script for cmd.exe shell
:: Created as part of cmder project
:: !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
:: !!! Use "%CMDER_ROOT%\config\user_profile.cmd" to add your own startup commands
2018-03-13 23:38:27 +08:00
:: Use /v command line arg or set to > 0 for verbose output to aid in debugging.
if not defined verbose_output set verbose_output=0
:: Use /d command line arg or set to 1 for debug output to aid in debugging.
if not defined debug_output set debug_output=0
:: Use /t command line arg or set to 1 to display init time.
if not defined time_init set time_init=0
:: Use /f command line arg to speed up init at the expense of some functionality.
if not defined fast_init set fast_init=0
:: Use /max_depth 1-5 to set max recurse depth for calls to `enhance_path_recursive`
if not defined max_depth set max_depth=1
:: Add *nix tools to end of path. 0 turns off *nix tools, 2 adds *nix tools to the front of the path.
if not defined nix_tools set nix_tools=1
set "CMDER_USER_FLAGS= "
:: Find root dir
if not defined CMDER_ROOT (
2017-06-23 17:48:03 +08:00
if defined ConEmuDir (
2018-03-13 23:38:27 +08:00
for /f "delims=" %%i in ("%ConEmuDir%\..\..") do (
set "CMDER_ROOT=%%~fi"
)
2017-06-23 17:48:03 +08:00
) else (
2018-03-13 23:38:27 +08:00
for /f "delims=" %%i in ("%~dp0\..") do (
set "CMDER_ROOT=%%~fi"
)
2017-06-23 17:48:03 +08:00
)
)
2018-03-13 23:38:27 +08:00
:: Remove trailing '\' from %CMDER_ROOT%
if "%CMDER_ROOT:~-1%" == "\" SET "CMDER_ROOT=%CMDER_ROOT:~0,-1%"
2022-10-18 19:50:35 +08:00
:: Include Cmder libraries
2018-09-16 02:55:54 +08:00
call "%cmder_root%\vendor\bin\cexec.cmd" /setpath
call "%cmder_root%\vendor\lib\lib_console"
call "%cmder_root%\vendor\lib\lib_base"
call "%cmder_root%\vendor\lib\lib_path"
call "%cmder_root%\vendor\lib\lib_git"
call "%cmder_root%\vendor\lib\lib_profile"
2018-03-13 23:38:27 +08:00
:var_loop
if "%~1" == "" (
goto :start
) else if /i "%1" == "/f" (
set fast_init=1
) else if /i "%1" == "/t" (
set time_init=1
2022-10-18 19:50:35 +08:00
) else if /i "%1" == "/v" (
2018-09-02 11:08:00 +08:00
set verbose_output=1
2022-10-18 19:50:35 +08:00
) else if /i "%1" == "/d" (
2019-03-18 03:09:02 +08:00
set debug_output=1
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/max_depth" (
2018-03-13 23:38:27 +08:00
if "%~2" geq "1" if "%~2" leq "5" (
set "max_depth=%~2"
shift
) else (
2020-12-08 03:41:11 +08:00
%print_error% "'/max_depth' requires a number between 1 and 5!"
2018-03-13 23:38:27 +08:00
exit /b
)
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/c" (
2018-03-13 23:38:27 +08:00
if exist "%~2" (
if not exist "%~2\bin" mkdir "%~2\bin"
set "cmder_user_bin=%~2\bin"
if not exist "%~2\config\profile.d" mkdir "%~2\config\profile.d"
set "cmder_user_config=%~2\config"
shift
)
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/user_aliases" (
2018-03-13 23:38:27 +08:00
if exist "%~2" (
set "user_aliases=%~2"
2018-03-13 23:38:27 +08:00
shift
)
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/git_install_root" (
2018-09-03 19:08:44 +08:00
if exist "%~2" (
2018-03-13 23:38:27 +08:00
set "GIT_INSTALL_ROOT=%~2"
shift
) else (
%print_error% "The Git install root folder "%~2" that you specified does not exist!"
2018-03-13 23:38:27 +08:00
exit /b
)
2022-10-18 19:50:35 +08:00
) else if /i "%1" == "/nix_tools" (
if "%2" equ "0" (
REM Do not add *nix tools to path
set nix_tools=0
shift
) else if "%2" equ "1" (
REM Add *nix tools to end of path
set nix_tools=1
shift
) else if "%2" equ "2" (
REM Add *nix tools to front of path
set nix_tools=2
shift
)
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/home" (
2018-03-13 23:38:27 +08:00
if exist "%~2" (
set "HOME=%~2"
shift
) else (
%print_error% The home folder "%2" that you specified does not exist!
2018-03-13 23:38:27 +08:00
exit /b
)
2018-04-04 01:20:49 +08:00
) else if /i "%1" == "/svn_ssh" (
2018-03-13 23:38:27 +08:00
set SVN_SSH=%2
shift
2018-05-01 20:57:02 +08:00
) else (
2022-10-18 19:50:35 +08:00
set "CMDER_USER_FLAGS=%1 %CMDER_USER_FLAGS%"
2018-03-13 23:38:27 +08:00
)
shift
2022-10-25 04:43:21 +08:00
goto :var_loop
2018-03-13 23:38:27 +08:00
:start
:: Enable console related methods if verbose/debug is turned on
if %debug_output% gtr 0 (set print_debug=%lib_console% debug_output)
if %verbose_output% gtr 0 (
set print_verbose=%lib_console% verbose_output
set print_warning=%lib_console% show_warning
)
2022-10-18 19:50:35 +08:00
:: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES variables
2018-09-03 06:32:20 +08:00
%lib_base% cmder_shell
2020-12-08 03:41:11 +08:00
%print_debug% init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%"
%print_debug% init.bat "Env Var - debug_output=%debug_output%"
2018-03-13 23:38:27 +08:00
2022-11-04 17:28:24 +08:00
:: Set the Cmder directory paths
set CMDER_CONFIG_DIR=%CMDER_ROOT%\config
2022-10-25 01:31:55 +08:00
2022-10-25 01:50:52 +08:00
:: Check if we're using Cmder individual user profile
2018-03-13 23:38:27 +08:00
if defined CMDER_USER_CONFIG (
2020-12-08 03:41:11 +08:00
%print_debug% init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%CMDER_USER_CONFIG%'!"
2020-04-30 00:03:24 +08:00
2022-01-16 00:00:58 +08:00
if not exist "%CMDER_USER_CONFIG%\..\opt" md "%CMDER_USER_CONFIG%\..\opt"
2022-10-25 01:31:55 +08:00
set CMDER_CONFIG_DIR=%CMDER_USER_CONFIG%
2018-03-13 23:38:27 +08:00
)
if not "%CMDER_SHELL%" == "cmd" (
2022-12-21 07:05:11 +08:00
%print_warning% "Incompatible 'ComSpec/Shell' Detected: %CMDER_SHELL%"
set CMDER_CLINK=0
set CMDER_ALIASES=0
)
2022-10-18 19:50:35 +08:00
:: Pick right version of Clink
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
2020-04-06 22:15:00 +08:00
set clink_architecture=x86
2018-03-13 23:38:27 +08:00
set architecture_bits=32
) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
2020-04-06 22:15:00 +08:00
set clink_architecture=x64
2018-03-13 23:38:27 +08:00
set architecture_bits=64
) else (
2022-12-21 07:05:11 +08:00
%print_warning% "Incompatible Processor Detected: %PROCESSOR_ARCHITECTURE%"
set CMDER_CLINK=0
2013-07-09 15:43:50 +08:00
)
2023-02-12 10:57:27 +08:00
if exist "%CMDER_ROOT%\config\user_init.cmd" if defined CMDER_USER_CONFIG (
call "%CMDER_ROOT%\config\user_init.cmd"
if exist "%CMDER_USER_CONFIG%\config\user_init.cmd" (
call "%CMDER_USER_CONFIG%\config\user_init.cmd"
)
exit /b
) else if exist "%CMDER_ROOT%\config\user_init.cmd" (
call "%CMDER_ROOT%\config\user_init.cmd"
exit /b
)
2018-09-03 07:18:59 +08:00
if "%CMDER_CLINK%" == "1" (
2022-12-21 06:59:31 +08:00
goto :INJECT_CLINK
2023-02-12 10:57:27 +08:00
) else if "%CMDER_CLINK%" == "2" (
goto :CLINK_FINISH
2022-12-21 06:59:31 +08:00
)
goto :SKIP_CLINK
:INJECT_CLINK
2022-10-18 19:50:35 +08:00
%print_verbose% "Injecting Clink!"
2022-10-18 20:52:05 +08:00
:: Check if Clink is not present
if not exist "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" (
%print_error% "Clink executable is not present in 'vendor\clink\clink_%clink_architecture%.exe'"
2022-12-21 06:59:31 +08:00
goto :SKIP_CLINK
2022-10-18 20:52:05 +08:00
)
:: Run Clink
2022-10-25 01:31:55 +08:00
if not exist "%CMDER_CONFIG_DIR%\settings" if not exist "%CMDER_CONFIG_DIR%\clink_settings" (
echo Generating Clink initial settings in "%CMDER_CONFIG_DIR%\clink_settings"
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_CONFIG_DIR%\clink_settings"
echo Additional *.lua files in "%CMDER_CONFIG_DIR%" are loaded on startup.
)
2021-04-12 06:28:43 +08:00
2022-10-25 01:31:55 +08:00
if not exist "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua" (
echo Creating Cmder prompt config file: "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua"
copy "%CMDER_ROOT%\vendor\cmder_prompt_config.lua.default" "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua"
)
2020-12-25 06:48:00 +08:00
2022-12-21 07:05:11 +08:00
:: Cleanup legacy Clink Settings file
2022-10-25 01:31:55 +08:00
if exist "%CMDER_CONFIG_DIR%\settings" if exist "%CMDER_CONFIG_DIR%\clink_settings" (
del "%CMDER_CONFIG_DIR%\settings"
)
2020-12-25 06:48:00 +08:00
2022-10-25 01:31:55 +08:00
:: Cleanup legacy Clink history file
if exist "%CMDER_CONFIG_DIR%\.history" if exist "%CMDER_CONFIG_DIR%\clink_history" (
del "%CMDER_CONFIG_DIR%\.history"
2022-10-18 19:50:35 +08:00
)
2022-10-18 20:41:54 +08:00
2022-10-25 01:31:55 +08:00
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_CONFIG_DIR%" --scripts "%CMDER_ROOT%\vendor"
2023-02-12 10:57:27 +08:00
set CMDER_CLINK=2
2022-10-25 01:31:55 +08:00
2022-10-18 20:41:54 +08:00
if errorlevel 1 (
2022-12-21 07:05:11 +08:00
%print_error% "Clink initialization has failed with error code: %errorlevel%"
2023-02-12 10:57:27 +08:00
goto :CLINK_FINISH
2022-10-18 20:41:54 +08:00
)
2022-12-21 06:59:31 +08:00
2023-02-12 10:57:27 +08:00
set CMDER_CLINK=2
2022-12-21 06:59:31 +08:00
goto :CLINK_FINISH
:SKIP_CLINK
%print_warning% "Skipping Clink Injection!"
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 65001>nul
:: Revert back to plain cmd.exe prompt without clink
prompt $E[1;32;49m$P$S$_$E[1;30;49mλ$S$E[0m
chcp %cp%>nul
2022-12-21 06:59:31 +08:00
:CLINK_FINISH
2013-07-09 15:43:50 +08:00
2020-07-24 01:41:10 +08:00
if "%CMDER_CONFIGURED%" GTR "1" (
2022-10-18 19:50:35 +08:00
%print_verbose% "Cmder is already configured, skipping Cmder Init!"
2022-10-25 01:50:52 +08:00
goto :USER_ALIASES
2020-07-24 01:41:10 +08:00
) else if "%CMDER_CONFIGURED%" == "1" (
2022-10-18 19:50:35 +08:00
%print_verbose% "Cmder is already configured, skipping to Cmder User Init!"
2020-07-24 01:41:10 +08:00
2022-10-25 01:50:52 +08:00
goto :USER_CONFIG_START
)
:: Prepare for git-for-windows
2013-11-04 01:04:36 +08:00
2022-10-18 19:50:35 +08:00
:: Detect which git.exe version to use
:: * if the users points as to a specific git, use that
:: * test if a git is in path and if yes, use that
:: * last, use our vendored git
:: also check that we have a recent enough version of git by examining the version string
if defined GIT_INSTALL_ROOT (
2018-09-16 23:18:10 +08:00
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT
set GIT_INSTALL_ROOT=
) else if "%fast_init%" == "1" (
if exist "%CMDER_ROOT%\vendor\git-for-windows\cmd\git.exe" (
2022-10-18 19:50:35 +08:00
%print_debug% init.bat "Skipping Git Auto-Detect!"
goto :VENDORED_GIT
)
%print_debug% init.bat "Fast init is enabled, vendored Git does not exist"
for /F "delims=" %%F in ('where git.exe 2^>nul') do (
set "EXT_GIT_EXE=%%~fF"
%print_debug% init.bat "Found User installed Git at '%%~fF'. Skipping Git Auto-Detect!"
goto :SET_ENV
)
)
2020-12-08 03:41:11 +08:00
%print_debug% init.bat "Looking for Git install root..."
2018-05-27 02:29:19 +08:00
2022-10-18 19:50:35 +08:00
:: Get the version information for vendored git binary
2020-09-13 20:27:10 +08:00
%lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" 2>nul
2018-09-16 23:18:10 +08:00
%lib_git% validate_version VENDORED %GIT_VERSION_VENDORED%
2022-10-18 19:50:35 +08:00
:: Check if git is in path
for /F "delims=" %%F in ('where git.exe 2^>nul') do call :check_git "%%~fF"
if defined GIT_INSTALL_ROOT (
goto :FOUND_GIT
) else (
goto :VENDORED_GIT
2020-02-22 00:52:52 +08:00
)
:check_git
set full_path="%~f1"
if not defined GIT_INSTALL_ROOT (
if not [\%full_path:\cmd\git.exe=:%]==[\%full_path%] (
:: Get the absolute path to the user provided git binary
2022-10-19 14:51:56 +08:00
%lib_git% is_git_shim "%~dp1"
%lib_git% get_user_git_version
%lib_git% compare_git_versions
)
)
exit /b
2022-10-18 19:50:35 +08:00
:: Our last hope: use vendored git
:VENDORED_GIT
if exist "%CMDER_ROOT%\vendor\git-for-windows" (
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
2022-04-16 22:51:26 +08:00
%print_debug% init.bat "Using vendored Git '%GIT_VERSION_VENDORED%'..."
2018-09-16 23:18:10 +08:00
goto :CONFIGURE_GIT
) else (
goto :NO_GIT
)
2018-09-16 23:18:10 +08:00
:SPECIFIED_GIT
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "Using specified GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%...."
2018-09-16 23:18:10 +08:00
goto :CONFIGURE_GIT
:FOUND_GIT
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "Using found Git '%GIT_VERSION_USER%' from 'v%GIT_INSTALL_ROOT%..."
2018-09-16 23:18:10 +08:00
goto :CONFIGURE_GIT
:CONFIGURE_GIT
2022-04-16 22:51:26 +08:00
%print_debug% init.bat "Using Git from '%GIT_INSTALL_ROOT%..."
2023-02-12 10:57:27 +08:00
:: Add git to the path
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - git.exe(prepend): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" (
set "path=%GIT_INSTALL_ROOT%\cmd;%path%"
)
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - git.exe(prepend): Env Var - PATH=%path%"
:: Add the unix commands at the end to not shadow windows commands like `more` and `find`
2019-10-13 22:07:23 +08:00
if %nix_tools% equ 1 (
2020-12-08 03:41:11 +08:00
%print_verbose% "Preferring Windows commands"
2019-10-13 22:07:23 +08:00
set "path_position=append"
) else (
2020-12-08 03:41:11 +08:00
%print_verbose% "Preferring *nix commands"
2019-10-13 22:07:23 +08:00
set "path_position="
)
2018-12-03 00:44:18 +08:00
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - nix_tools(%path_position%): Env Var - PATH=%path%"
2019-10-13 22:07:23 +08:00
if %nix_tools% geq 1 (
2020-01-07 11:57:29 +08:00
if exist "%GIT_INSTALL_ROOT%\mingw32" (
2023-02-11 11:19:50 +08:00
if "%path_position%" == "append" (
set "path=%path%;%GIT_INSTALL_ROOT%\mingw32\bin"
) else (
set "path=%GIT_INSTALL_ROOT%\mingw32\bin;%path%"
)
2020-01-07 11:57:29 +08:00
) else if exist "%GIT_INSTALL_ROOT%\mingw64" (
2023-02-11 11:19:50 +08:00
if "%path_position%" == "append" (
set "path=%path%;%GIT_INSTALL_ROOT%\mingw64\bin"
) else (
set "path=%GIT_INSTALL_ROOT%\mingw64\bin;%path%"
)
)
if exist "%GIT_INSTALL_ROOT%\usr\bin" (
2023-02-11 11:19:50 +08:00
if "%path_position%" == "append" (
set "path=%path%;%GIT_INSTALL_ROOT%\usr\bin"
) else (
set "path=%GIT_INSTALL_ROOT%\usr\bin;%path%"
)
2020-01-07 11:57:29 +08:00
)
2019-10-13 22:07:23 +08:00
)
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - nix_tools(%path_position%): Env Var - PATH=%path%"
:SET_ENV
2022-10-18 19:50:35 +08:00
:: Plink (PuTTY Link) is a command-line connection tool similar to ssh, setting its protocol to ssh
set PLINK_PROTOCOL=ssh
:: Define SVN_SSH so we can use git svn with ssh svn repositories
2019-10-13 22:07:23 +08:00
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
:: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path.
setlocal enabledelayedexpansion
if not defined git_locale if defined EXT_GIT_EXE (
set "GIT_INSTALL_ROOT=!EXT_GIT_EXE:\cmd\git.exe=!"
)
endlocal && set GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%
2019-10-13 22:07:23 +08:00
if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\locale.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\locale.exe"
2022-10-18 19:50:35 +08:00
if not defined git_locale for /F "tokens=* delims=" %%F in ('where locale.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" )
2019-10-13 22:07:23 +08:00
if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\env.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\env.exe" /usr/bin/locale
2022-10-18 19:50:35 +08:00
if not defined git_locale for /F "tokens=* delims=" %%F in ('where env.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" /usr/bin/locale )
2019-12-05 05:04:16 +08:00
2020-08-25 08:27:56 +08:00
setlocal enabledelayedexpansion
2019-12-05 05:04:16 +08:00
if defined git_locale (
2022-10-18 19:50:35 +08:00
REM %print_debug% init.bat "Env Var - git_locale=!git_locale!"
if not defined LANG (
for /F "delims=" %%F in ('!git_locale! -uU 2') do (
set "LANG=%%F"
)
)
)
2020-08-25 08:27:56 +08:00
endlocal && set LANG=%LANG%
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "Found Git in: 'GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%'"
2018-05-27 02:29:19 +08:00
goto :PATH_ENHANCE
:NO_GIT
2018-05-27 02:29:19 +08:00
:: Skip this if GIT WAS FOUND else we did 'endlocal' above!
endlocal
2018-05-27 02:29:19 +08:00
:PATH_ENHANCE
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - vendor/bin(prepend): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
set "path=%CMDER_ROOT%\vendor\bin;%path%"
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - vendor/bin(prepend): Env Var - PATH=%path%"
:USER_CONFIG_START
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - bin(prepend): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
if %max_depth% gtr 1 (
%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" 0 %max_depth%
) else (
set "path=%CMDER_ROOT%\bin;%path%"
)
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - bin(prepend): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
2018-03-13 23:38:27 +08:00
if defined CMDER_USER_BIN (
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - user_bin(prepend): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
if %max_depth% gtr 1 (
2022-10-18 19:50:35 +08:00
%lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %max_depth%
2023-02-11 11:19:50 +08:00
) else (
set "path=%CMDER_USER_ROOT%\bin;%path%"
)
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - user_bin(prepend): Env Var - PATH=!path!"
2018-03-13 23:38:27 +08:00
)
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "START - cmder_root(append): Env Var - PATH=%path%"
2023-02-11 11:19:50 +08:00
set "path=%path%;%CMDER_ROOT%"
2023-02-12 10:57:27 +08:00
%print_debug% init.bat "END - cmder_root(append): Env Var - PATH=%path%"
2013-07-16 05:45:25 +08:00
:: Drop *.bat and *.cmd files into "%CMDER_ROOT%\config\profile.d"
:: to run them at startup.
%lib_profile% run_profile_d "%CMDER_ROOT%\config\profile.d"
2018-03-13 23:38:27 +08:00
if defined CMDER_USER_CONFIG (
2022-10-18 19:50:35 +08:00
%lib_profile% run_profile_d "%CMDER_USER_CONFIG%\profile.d"
)
2015-11-25 06:38:26 +08:00
2020-07-24 01:41:10 +08:00
:USER_ALIASES
2016-03-20 21:30:20 +08:00
:: Allows user to override default aliases store using profile.d
:: scripts run above by setting the 'aliases' env variable.
::
:: Note: If overriding default aliases store file the aliases
:: must also be self executing, see '.\user_aliases.cmd.default',
:: and be in profile.d folder.
if not defined user_aliases (
2022-10-25 01:31:55 +08:00
set "user_aliases=%CMDER_CONFIG_DIR%\user_aliases.cmd"
2018-03-13 23:38:27 +08:00
)
2018-09-03 07:18:59 +08:00
if "%CMDER_ALIASES%" == "1" (
2022-10-18 19:50:35 +08:00
REM The aliases environment variable is used by alias.bat to id
REM the default file to store new aliases in.
if not defined aliases (
set "aliases=%user_aliases%"
)
REM Make sure we have a self-extracting user_aliases.cmd file
if not exist "%user_aliases%" (
echo Creating initial user_aliases store in "%user_aliases%"...
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
) else (
%lib_base% update_legacy_aliases
)
:: Update old 'user_aliases' to new self executing 'user_aliases.cmd'
if exist "%CMDER_ROOT%\config\aliases" (
echo Updating old "%CMDER_ROOT%\config\aliases" to new format...
type "%CMDER_ROOT%\config\aliases" >> "%user_aliases%"
del "%CMDER_ROOT%\config\aliases"
) else if exist "%user_aliases%.old_format" (
echo Updating old "%user_aliases%" to new format...
type "%user_aliases%.old_format" >> "%user_aliases%"
del "%user_aliases%.old_format"
)
2016-03-20 21:30:20 +08:00
)
2018-03-13 23:38:27 +08:00
:: Add aliases to the environment
2020-12-25 06:48:00 +08:00
type "%user_aliases%" | findstr /b /l /i "history=cat " >nul
if "%ERRORLEVEL%" == "0" (
2022-10-18 19:50:35 +08:00
echo Migrating alias 'history' to new Clink 1.x.x...
call "%CMDER_ROOT%\vendor\bin\alias.cmd" /d history
echo Restart the session to activate changes!
2020-12-25 06:48:00 +08:00
)
call "%user_aliases%"
2022-10-25 04:43:21 +08:00
if "%CMDER_CONFIGURED%" gtr "1" goto :CMDER_CONFIGURED
2020-07-24 01:41:10 +08:00
:: See vendor\git-for-windows\README.portable for why we do this
:: Basically we need to execute this post-install.bat because we are
:: manually extracting the archive rather than executing the 7z sfx
2018-03-13 23:38:27 +08:00
if exist "%GIT_INSTALL_ROOT%\post-install.bat" (
echo Running Git for Windows one time Post Install....
2018-03-13 23:38:27 +08:00
pushd "%GIT_INSTALL_ROOT%\"
"%GIT_INSTALL_ROOT%\git-cmd.exe" --no-needs-console --no-cd --command=post-install.bat
2017-11-11 00:05:47 +08:00
popd
)
2013-11-16 00:06:15 +08:00
:: Set home path
if not defined HOME set "HOME=%USERPROFILE%"
2020-12-08 03:41:11 +08:00
%print_debug% init.bat "Env Var - HOME=%HOME%"
set "initialConfig=%CMDER_ROOT%\config\user_profile.cmd"
if exist "%CMDER_ROOT%\config\user_profile.cmd" (
REM Create this file and place your own command in there
2020-12-08 03:41:11 +08:00
%print_debug% init.bat "Calling - %CMDER_ROOT%\config\user_profile.cmd"
call "%CMDER_ROOT%\config\user_profile.cmd"
2018-03-13 23:38:27 +08:00
)
2018-04-04 01:20:49 +08:00
if defined CMDER_USER_CONFIG (
2022-10-18 19:50:35 +08:00
set "initialConfig=%CMDER_USER_CONFIG%\user_profile.cmd"
if exist "%CMDER_USER_CONFIG%\user_profile.cmd" (
REM Create this file and place your own command in there
%print_debug% init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd"
call "%CMDER_USER_CONFIG%\user_profile.cmd"
)
2018-04-04 01:20:49 +08:00
)
if not exist "%initialConfig%" (
echo Creating user startup file: "%initialConfig%"
copy "%CMDER_ROOT%\vendor\user_profile.cmd.default" "%initialConfig%"
)
2018-09-03 07:18:59 +08:00
if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMDER_ROOT%\vendor\bin\alias.cmd" (
2022-10-18 19:50:35 +08:00
echo Cmder's 'alias' command has been moved into "%CMDER_ROOT%\vendor\bin\alias.cmd"
echo to get rid of this message either:
echo.
echo Delete the file "%CMDER_ROOT%\bin\alias.bat"
echo.
echo or
echo.
echo If you have customized it and want to continue using it instead of the included version
echo * Rename "%CMDER_ROOT%\bin\alias.bat" to "%CMDER_ROOT%\bin\alias.cmd".
echo * Search for 'user-aliases' and replace it with 'user_aliases'.
)
2018-04-04 01:20:49 +08:00
set initialConfig=
:CMDER_CONFIGURED
2020-07-24 01:41:10 +08:00
if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1
2018-09-04 00:59:43 +08:00
2018-11-11 21:04:35 +08:00
set CMDER_INIT_END=%time%
2022-10-18 19:50:35 +08:00
"%cmder_root%\vendor\bin\timer.cmd" "%CMDER_INIT_START%" "%CMDER_INIT_END%"
)
2020-04-06 22:15:00 +08:00
exit /b