mirror of
https://github.com/cmderdev/cmder.git
synced 2025-01-11 00:39:08 +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%"
|
||||
|
||||
|
||||
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%"
|
||||
if %max_depth% gtr 1 (
|
||||
%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=
|
||||
|
||||
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
|
||||
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
|
||||
}
|
||||
|
||||
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