mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 17:59:11 +08:00
auto generate cmd user_init.cmd
This commit is contained in:
parent
02154a8f88
commit
1e623ecab4
19
vendor/bin/create-cmdercfg.ps1
vendored
Normal file
19
vendor/bin/create-cmdercfg.ps1
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[CmdletBinding()]
|
||||||
|
param(
|
||||||
|
[Parameter()]
|
||||||
|
[string]$shell = 'cmd',
|
||||||
|
[string]$outfile = "$env:cmder_root\config\user_init.cmd"
|
||||||
|
)
|
||||||
|
|
||||||
|
$CmderModulePath = Join-path $env:cmder_root "vendor/psmodules/"
|
||||||
|
$CmderFunctions = Join-Path $CmderModulePath "Cmder.ps1"
|
||||||
|
. $CmderFunctions
|
||||||
|
|
||||||
|
if ($shell -match 'cmd') {
|
||||||
|
write-host "Generating Cmder Config for '$shell' shell in '$outfile'..."
|
||||||
|
templateExpand "$env:cmder_root\vendor\user_init.cmd.template" "$outfile"
|
||||||
|
} elseif ($shell -match 'powershell') {
|
||||||
|
write-host "'$shell' is not supported at this time!"
|
||||||
|
} elseif ($shell -match 'bash') {
|
||||||
|
write-host "'$shell' is not supported at this time!"
|
||||||
|
}
|
22
vendor/init.bat
vendored
22
vendor/init.bat
vendored
@ -417,7 +417,7 @@ if %max_depth% gtr 1 (
|
|||||||
%print_debug% init.bat "END - bin(prepend): Env Var - PATH=%path%"
|
%print_debug% init.bat "END - bin(prepend): Env Var - PATH=%path%"
|
||||||
|
|
||||||
|
|
||||||
if defined CMDER_USER_BIN (
|
if defined CMDER_USER_BIN if defined CMDER_USER_ROOT (
|
||||||
%print_debug% init.bat "START - user_bin(prepend): Env Var - PATH=%path%"
|
%print_debug% init.bat "START - user_bin(prepend): Env Var - PATH=%path%"
|
||||||
if %max_depth% gtr 1 (
|
if %max_depth% gtr 1 (
|
||||||
%lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %max_depth%
|
%lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %max_depth%
|
||||||
@ -538,6 +538,26 @@ if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMD
|
|||||||
|
|
||||||
set initialConfig=
|
set initialConfig=
|
||||||
|
|
||||||
|
if defined CMDER_USER_CONFIG (
|
||||||
|
if not exist "%CMDER_ROOT%\config\user_init.cmd" if not exist "%CMDER_USER_ROOT%\config\user_init.cmd" (
|
||||||
|
powershell -f %cmder_root%\vendor\bin\create-cmdercfg.ps1 -shell cmd -outfile "%CMDER_ROOT%\config\user_init.cmd"
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist "%CMDER_ROOT%\config\user_init.cmd" if not exist "%CMDER_USER_ROOT%\config\user_init.cmd" (
|
||||||
|
powershell -f %cmder_root%\vendor\bin\create-cmdercfg.ps1 -shell cmd -outfile "%CMDER_iUSER_ROOT%\config\user_init.cmd"
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist "%CMDER_ROOT%\config\user_init.cmd" if not exist "%CMDER_USER_ROOT%\config\user_init.cmd" (
|
||||||
|
%print_error% "Failed to generate Cmder config"
|
||||||
|
)
|
||||||
|
) else if not exist "%CMDER_ROOT%\config\user_init.cmd" (
|
||||||
|
powershell -f %cmder_root%\vendor\bin\create-cmdercfg.ps1 -shell cmd -outfile "%CMDER_ROOT%\config\user_init.cmd"
|
||||||
|
|
||||||
|
if not exist "%CMDER_ROOT%\config\user_init.cmd" (
|
||||||
|
%print_error% "Failed to generate Cmder config"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
:CMDER_CONFIGURED
|
:CMDER_CONFIGURED
|
||||||
if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1
|
if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1
|
||||||
|
|
||||||
|
25
vendor/psmodules/Cmder.ps1
vendored
25
vendor/psmodules/Cmder.ps1
vendored
@ -176,3 +176,28 @@ function getGitStatusSetting() {
|
|||||||
|
|
||||||
return $true
|
return $true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function yOrn( $question ) {
|
||||||
|
Do {
|
||||||
|
$Answer = Read-Host -Prompt "`n${question}? (y/n) "
|
||||||
|
}
|
||||||
|
Until ($Answer -eq 'y' -or $Answer -eq 'n' -or $Answer -eq 'yes' -or $Answer -eq 'no')
|
||||||
|
|
||||||
|
return $Answer
|
||||||
|
}
|
||||||
|
|
||||||
|
function templateExpand($template, $outfile) {
|
||||||
|
$template = Get-Content $template -Raw
|
||||||
|
$expanded = Invoke-Expression "@`"`r`n$template`r`n`"@"
|
||||||
|
|
||||||
|
$overwrite = 'y'
|
||||||
|
if ((test-path "$outfile")) {
|
||||||
|
$overwrite = yOrn "'$outfile' already exists do you want to overwrite it"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($overwrite -match 'y') {
|
||||||
|
$expanded | out-file -ErrorAction silentlycontinue -encoding ascii "$outfile"
|
||||||
|
} else {
|
||||||
|
write-host "Skipping Cmder '$shell' config generation at user request!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
168
vendor/user_init.cmd.template
vendored
Normal file
168
vendor/user_init.cmd.template
vendored
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
:: This file was autogenerated by Cmder init.bat
|
||||||
|
::
|
||||||
|
:: It is yours to edit and will not be touched again by Cmder.
|
||||||
|
::
|
||||||
|
:: If you wish to recreate this file simply rename it and Cmder will re-create it the next time it is run
|
||||||
|
:: or run the followin command from a Cmder shell:
|
||||||
|
::
|
||||||
|
:: powershell -f %cmder_root%\vendor\bin\create-cmdercfg.ps1 -shell cmd [-outfile "[filename]"]
|
||||||
|
::
|
||||||
|
|
||||||
|
if "%CMDER_CLINK%" == "1" (
|
||||||
|
goto :INJECT_CLINK
|
||||||
|
) else if "%CMDER_CLINK%" == "2" (
|
||||||
|
goto :CLINK_FINISH
|
||||||
|
)
|
||||||
|
|
||||||
|
goto :SKIP_CLINK
|
||||||
|
|
||||||
|
:INJECT_CLINK
|
||||||
|
%print_verbose% "Injecting Clink!"
|
||||||
|
|
||||||
|
:: Check if Clink is not present
|
||||||
|
if not exist "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" (
|
||||||
|
goto :SKIP_CLINK
|
||||||
|
)
|
||||||
|
|
||||||
|
:: Run Clink
|
||||||
|
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.
|
||||||
|
)
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_CONFIG_DIR%" --scripts "%CMDER_ROOT%\vendor"
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
%print_error% "Clink initialization has failed with error code: %errorlevel%"
|
||||||
|
goto :CLINK_FINISH
|
||||||
|
)
|
||||||
|
|
||||||
|
set CMDER_CLINK=2
|
||||||
|
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
|
||||||
|
:CLINK_FINISH
|
||||||
|
|
||||||
|
if not defined GIT_INSTALL_ROOT set "GIT_INSTALL_ROOT=$env:GIT_INSTALL_ROOT"
|
||||||
|
if not defined SVN_SSH set "SVN_SSH=$env:SVN_SSH"
|
||||||
|
if not defined git_locale set git_locale=$env:git_locale
|
||||||
|
if not defined LANG set LANG=$env:lang
|
||||||
|
if not defined user_aliases set "user_aliases=$env:user_aliases"
|
||||||
|
if not defined aliases set "aliases=%user_aliases%"
|
||||||
|
if not defined HOME set "HOME=%USERPROFILE%"
|
||||||
|
|
||||||
|
set PLINK_PROTOCOL=$env:PLINK_PROTOCOL
|
||||||
|
|
||||||
|
set "path=%GIT_INSTALL_ROOT%\cmd;%path%"
|
||||||
|
|
||||||
|
set path_position=append
|
||||||
|
if %nix_tools% equ 1 (
|
||||||
|
set "path_position=append"
|
||||||
|
) else (
|
||||||
|
set "path_position="
|
||||||
|
)
|
||||||
|
|
||||||
|
if %nix_tools% geq 1 (
|
||||||
|
if exist "%GIT_INSTALL_ROOT%\mingw32" (
|
||||||
|
if "%path_position%" == "append" (
|
||||||
|
set "path=%path%;%GIT_INSTALL_ROOT%\mingw32\bin"
|
||||||
|
) else (
|
||||||
|
set "path=%GIT_INSTALL_ROOT%\mingw32\bin;%path%"
|
||||||
|
)
|
||||||
|
) else if exist "%GIT_INSTALL_ROOT%\mingw64" (
|
||||||
|
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" (
|
||||||
|
if "%path_position%" == "append" (
|
||||||
|
set "path=%path%;%GIT_INSTALL_ROOT%\usr\bin"
|
||||||
|
) else (
|
||||||
|
set "path=%GIT_INSTALL_ROOT%\usr\bin;%path%"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
set "path=%CMDER_ROOT%\vendor\bin;%path%"
|
||||||
|
|
||||||
|
:USER_CONFIG_START
|
||||||
|
if %max_depth% gtr 1 (
|
||||||
|
%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" 0 %max_depth%
|
||||||
|
) else (
|
||||||
|
set "path=%CMDER_ROOT%\bin;%path%"
|
||||||
|
)
|
||||||
|
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
if defined CMDER_USER_BIN (
|
||||||
|
if %max_depth% gtr 1 (
|
||||||
|
%lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %max_depth%
|
||||||
|
) else (
|
||||||
|
set "path=%CMDER_USER_ROOT%\bin;%path%"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
endlocal && set "path=%path%"
|
||||||
|
|
||||||
|
set "path=%path%;%CMDER_ROOT%"
|
||||||
|
|
||||||
|
call "%user_aliases%"
|
||||||
|
|
||||||
|
%lib_profile% run_profile_d "%CMDER_ROOT%\config\profile.d"
|
||||||
|
if defined CMDER_USER_CONFIG (
|
||||||
|
%lib_profile% run_profile_d "%CMDER_USER_CONFIG%\profile.d"
|
||||||
|
)
|
||||||
|
|
||||||
|
call "%CMDER_ROOT%\config\user_profile.cmd"
|
||||||
|
if defined CMDER_USER_CONFIG (
|
||||||
|
if exist "%CMDER_USER_CONFIG%\user_profile.cmd" (
|
||||||
|
call "%CMDER_USER_CONFIG%\user_profile.cmd"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
set "path=%path:;;=;%
|
||||||
|
|
||||||
|
:CMDER_CONFIGURED
|
||||||
|
if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1
|
||||||
|
|
||||||
|
set CMDER_INIT_END=%time%
|
||||||
|
|
||||||
|
if "%CMDER_INIT_END%" neq "" if "%CMDER_INIT_START%" neq "" (
|
||||||
|
"%cmder_root%\vendor\bin\timer.cmd" "%CMDER_INIT_START%" "%CMDER_INIT_END%"
|
||||||
|
)
|
||||||
|
|
||||||
|
:: Cleanup
|
||||||
|
set architecture_bits=""
|
||||||
|
set CMDER_ALIASES=""
|
||||||
|
set CMDER_INIT_END=""
|
||||||
|
set CMDER_INIT_START=""
|
||||||
|
set debug_output=""
|
||||||
|
set fast_init=""
|
||||||
|
set max_depth=""
|
||||||
|
set nix_tools=""
|
||||||
|
set path_position=""
|
||||||
|
set print_debug=""
|
||||||
|
set print_error=""
|
||||||
|
set print_verbose=""
|
||||||
|
set print_warning=""
|
||||||
|
set time_init=""
|
||||||
|
set verbose_output=""
|
||||||
|
|
||||||
|
exit /b
|
Loading…
Reference in New Issue
Block a user