diff --git a/.gitignore b/.gitignore index cf231c5..3243549 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ ## Those files should be taken from their repositary +bin/*/* +!bin/Readme.md vendor/*/* +!vendor/bin/* !vendor/lib/* !vendor/* !vendor/psmodules/PsGet @@ -14,8 +17,11 @@ build/ Version v* *.bak config/user-* +config/user_* +config/*.lua config/settings config/aliases config/profile.d .github_changelog_generator launcher/.vs +launcher/src/version.rc2 diff --git a/README.md b/README.md index b97204e..d50c61f 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ From a bash/mintty shell: cd $CMDER_ROOT/vendor git clone https://github.com/karlin/mintty-colors-solarized.git cd mintty-colors-solarized/ -echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user-profile.sh +echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh ``` You may find some Monokai color schemes for mintty to match Cmder [here](https://github.com/PhilipDaniels/mintty/blob/master/themes/Monokai) or [here](https://github.com/oumu/mintty-color-schemes/blob/master/base16-monokai-mod.minttyrc). @@ -155,11 +155,11 @@ Single user portable configuration is possible using the cmder specific shell co | Shell | Cmder Portable User Config | | ------------- | ----------------------------------------- | -| Cmder | `%CMDER_ROOT%\\config\\user-profile.cmd` | -| PowerShell | `$ENV:CMDER_ROOT\\config\\user-profile.ps1` | -| Bash/Mintty | `$CMDER_ROOT/config/user-profile.sh` | +| Cmder | `%CMDER_ROOT%\\config\\user_profile.cmd` | +| PowerShell | `$ENV:CMDER_ROOT\\config\\user_profile.ps1` | +| Bash/Mintty | `$CMDER_ROOT/config/user_profile.sh` | -Note: Bash and Mintty sessions will also source the `$HOME/.bashrc` file if it exists after it sources `$CMDER_ROOT/config/user-profile.sh`. +Note: Bash and Mintty sessions will also source the `$HOME/.bashrc` file if it exists after it sources `$CMDER_ROOT/config/user_profile.sh`. You can write `*.cmd|*.bat`, `*.ps1`, and `*.sh` scripts and just drop them in the `%CMDER_ROOT%\config\profile.d` folder to add startup config to Cmder. @@ -179,11 +179,11 @@ Aliases defined using the `alias.bat` command will automatically be saved in the To make an alias and/or any other profile settings permanent add it to one of the following: -Note: These are loaded in this order by `$CMDER_ROOT/vendor/init.bat`. Anyhing stored in `%CMDER_ROOT%` will be a portable setting and will follow cmder to another machine. +Note: These are loaded in this order by `$CMDER_ROOT/vendor/init.bat`. Anything stored in `%CMDER_ROOT%` will be a portable setting and will follow cmder to another machine. * `%CMDER_ROOT%\\config\\profile.d\\\*.cmd` and `\*.bat` * `%CMDER_ROOT%\\config\\user-aliases.cmd` -* `%CMDER_ROOT%\\config\\user-profile.cmd` +* `%CMDER_ROOT%\\config\\user_profile.cmd` #### Bash.exe|Mintty.exe Aliases Bash shells support simple and complex aliases with optional parameters natively so they work a little different. Typing `alias name=command` will create an alias only for the current running session. @@ -193,26 +193,26 @@ To make an alias and/or any other profile settings permanent add it to one of th Note: These are loaded in this order by `$CMDER_ROOT/vendor/git-for-windows/etc/profile.d/cmder.sh`. Anything stored in `$CMDER_ROOT` will be a portable setting and will follow cmder to another machine. * `$CMDER_ROOT/config/profile.d/*.sh` -* `$CMDER_ROOT/config/user-profile.sh` +* `$CMDER_ROOT/config/user_profile.sh` * `$HOME/.bashrc` -If you add bash aliases to `$CMDER_ROOT/config/user-profile.sh` they will be portable and follow your Cmder folder if you copy it to another machine. `$HOME/.bashrc` defined aliases are not portable. +If you add bash aliases to `$CMDER_ROOT/config/user_profile.sh` they will be portable and follow your Cmder folder if you copy it to another machine. `$HOME/.bashrc` defined aliases are not portable. #### PowerShell.exe Aliases PowerShell has native simple alias support, for example `[new-alias | set-alias] alias command`, so complex aliases with optional parameters are not supported in PowerShell sessions. Type `get-help [new-alias|set-alias] -full` for help on PowerShell aliases. To make an alias and/or any other profile settings permanent add it to one of the following: -Note: These are loaded in this order by `$ENV:CMDER_ROOT\\vendor\\user-profile.ps1`. Anyhing stored in `$ENV:CMDER_ROOT` will be a portable setting and will follow cmder to another machine. +Note: These are loaded in this order by `$ENV:CMDER_ROOT\\vendor\\user_profile.ps1`. Anything stored in `$ENV:CMDER_ROOT` will be a portable setting and will follow cmder to another machine. * '$ENV:CMDER_ROOT\\config\\profile.d\\\*.ps1' -* '$ENV:CMDER_ROOT\\config\\user-profile.ps1' +* '$ENV:CMDER_ROOT\\config\\user_profile.ps1' ### SSH Agent To start the vendored SSH agent simply call `start-ssh-agent`, which is in the `vendor/git-for-windows/cmd` folder. -If you want to run SSH agent on startup, include the line `@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"` in `%CMDER_ROOT%/config/user-profile.cmd` (usually just uncomment it). +If you want to run SSH agent on startup, include the line `@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"` in `%CMDER_ROOT%/config/user_profile.cmd` (usually just uncomment it). ### Vendored Git diff --git a/config/ConEmu.xml b/config/ConEmu.xml index db45a6a..c4f4fff 100644 --- a/config/ConEmu.xml +++ b/config/ConEmu.xml @@ -508,7 +508,7 @@ - + @@ -517,7 +517,7 @@ - + diff --git a/launcher/src/CmderLauncher.cpp b/launcher/src/CmderLauncher.cpp index f417764..7bd1b21 100644 --- a/launcher/src/CmderLauncher.cpp +++ b/launcher/src/CmderLauncher.cpp @@ -9,6 +9,7 @@ #include #pragma comment(lib, "Shlwapi.lib") +#pragma warning( disable : 4091 ) #ifndef UNICODE #error "Must be compiled with unicode support." @@ -85,6 +86,10 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr wchar_t userConfigDirPath[MAX_PATH] = { 0 }; wchar_t userBinDirPath[MAX_PATH] = { 0 }; wchar_t userProfiledDirPath[MAX_PATH] = { 0 }; + wchar_t userProfilePath[MAX_PATH] = { 0 }; + wchar_t legacyUserProfilePath[MAX_PATH] = { 0 }; + wchar_t userAliasesPath[MAX_PATH] = { 0 }; + wchar_t legacyUserAliasesPath[MAX_PATH] = { 0 }; wchar_t args[MAX_PATH * 2 + 256] = { 0 }; std::wstring cmderStart = path; @@ -104,6 +109,35 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr PathCombine(icoPath, exeDir, L"icons\\cmder.ico"); PathCombine(configDirPath, exeDir, L"config"); + + PathCombine(legacyUserProfilePath, configDirPath, L"user-profile.cmd"); + if (PathFileExists(legacyUserProfilePath)) { + PathCombine(userProfilePath, configDirPath, L"user_profile.cmd"); + + char *lPr = (char *)malloc(MAX_PATH); + char *pR = (char *)malloc(MAX_PATH); + size_t i; + wcstombs_s(&i, lPr, (size_t)MAX_PATH, + legacyUserProfilePath, (size_t)MAX_PATH); + wcstombs_s(&i, pR, (size_t)MAX_PATH, + userProfilePath, (size_t)MAX_PATH); + rename(lPr, pR); + } + + PathCombine(legacyUserAliasesPath, configDirPath, L"user-aliases.cmd"); + if (PathFileExists(legacyUserAliasesPath)) { + PathCombine(userAliasesPath, configDirPath, L"user_aliases.cmd"); + + char *lPr = (char *)malloc(MAX_PATH); + char *pR = (char *)malloc(MAX_PATH); + size_t i; + wcstombs_s(&i, lPr, (size_t)MAX_PATH, + legacyUserAliasesPath, (size_t)MAX_PATH); + wcstombs_s(&i, pR, (size_t)MAX_PATH, + userAliasesPath, (size_t)MAX_PATH); + rename(lPr, pR); + } + if (wcscmp(userConfigDirPath, L"") == 0) { PathCombine(userConfigDirPath, exeDir, L"config"); @@ -118,6 +152,34 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr PathCombine(userProfiledDirPath, userConfigDirPath, L"profile.d"); SHCreateDirectoryEx(0, userProfiledDirPath, 0); + + PathCombine(legacyUserProfilePath, userConfigDirPath, L"user-profile.cmd"); + if (PathFileExists(legacyUserProfilePath)) { + PathCombine(userProfilePath, userConfigDirPath, L"user_profile.cmd"); + + char *lPr = (char *)malloc(MAX_PATH); + char *pR = (char *)malloc(MAX_PATH); + size_t i; + wcstombs_s(&i, lPr, (size_t)MAX_PATH, + legacyUserProfilePath, (size_t)MAX_PATH); + wcstombs_s(&i, pR, (size_t)MAX_PATH, + userProfilePath, (size_t)MAX_PATH); + rename(lPr, pR); + } + + PathCombine(legacyUserAliasesPath, userConfigDirPath, L"user-aliases.cmd"); + if (PathFileExists(legacyUserAliasesPath)) { + PathCombine(userAliasesPath, userConfigDirPath, L"user_aliases.cmd"); + + char *lPr = (char *)malloc(MAX_PATH); + char *pR = (char *)malloc(MAX_PATH); + size_t i; + wcstombs_s(&i, lPr, (size_t)MAX_PATH, + legacyUserAliasesPath, (size_t)MAX_PATH); + wcstombs_s(&i, pR, (size_t)MAX_PATH, + userAliasesPath, (size_t)MAX_PATH); + rename(lPr, pR); + } } // Set path to vendored ConEmu config file @@ -131,7 +193,6 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr ExpandEnvironmentStrings(cpuCfgPath, cpuCfgPath, sizeof(cpuCfgPath) / sizeof(cpuCfgPath[0])); PathCombine(userCfgPath, userConfigDirPath, L"user-ConEmu.xml"); - if (PathFileExists(cpuCfgPath)) { if (PathFileExists(cfgPath)) { if (!CopyFile(cfgPath, cpuCfgPath, FALSE)) @@ -361,6 +422,7 @@ cmderOptions GetOption() for (int i = 1; i < argCount; i++) { + // MessageBox(NULL, szArgList[i], L"Arglist contents", MB_OK); if (_wcsicmp(L"/c", szArgList[i]) == 0) @@ -380,13 +442,19 @@ cmderOptions GetOption() } else if (_wcsicmp(L"/start", szArgList[i]) == 0) { + int len = wcslen(szArgList[i + 1]); + if (wcscmp(&szArgList[i + 1][len - 1], L"\"") == 0) + { + szArgList[i + 1][len - 1] = '\0'; + } + if (PathFileExists(szArgList[i + 1])) { cmderOptions.cmderStart = szArgList[i + 1]; i++; } else { - MessageBox(NULL, szArgList[i + 1], L"/START - Folder doses not exist!", MB_OK); + MessageBox(NULL, szArgList[i + 1], L"/START - Folder does not exist!", MB_OK); } } else if (_wcsicmp(L"/task", szArgList[i]) == 0) @@ -415,7 +483,7 @@ cmderOptions GetOption() { cmderOptions.unRegisterApp = true; cmderOptions.registerApp = false; - if (szArgList[i + 1] != NULL) + if (szArgList[i + 1] != NULL) { if (_wcsicmp(L"all", szArgList[i + 1]) == 0 || _wcsicmp(L"user", szArgList[i + 1]) == 0) { @@ -424,9 +492,22 @@ cmderOptions GetOption() } } } - else if (cmderOptions.cmderStart == L"" && PathFileExists(szArgList[i])) + else if (cmderOptions.cmderStart == L"") { - cmderOptions.cmderStart = szArgList[i]; + int len = wcslen(szArgList[i]); + if (wcscmp(&szArgList[i][len - 1], L"\"") == 0) + { + szArgList[i][len - 1] = '\0'; + } + + if (PathFileExists(szArgList[i])) + { + cmderOptions.cmderStart = szArgList[i]; + i++; + } + else { + MessageBox(NULL, szArgList[i], L"Folder does not exist!", MB_OK); + } } else { MessageBox(NULL, L"Unrecognized parameter.\n\nValid options:\n\n /c [CMDER User Root Path]\n\n /task [ConEmu Task Name]\n\n [/start [Start in Path] | [Start in Path]]\n\n /single\n\nor\n\n /register [USER | ALL]\n\nor\n\n /unregister [USER | ALL]\n", MB_TITLE, MB_OK); diff --git a/bin/alias.bat b/vendor/bin/alias.cmd similarity index 93% rename from bin/alias.bat rename to vendor/bin/alias.cmd index 03696f6..50e22e7 100644 --- a/bin/alias.bat +++ b/vendor/bin/alias.cmd @@ -2,7 +2,7 @@ if "%ALIASES%" == "" ( - set ALIASES="%CMDER_ROOT%\config\user-aliases.cmd" + set ALIASES="%CMDER_ROOT%\config\user_aliases.cmd" ) setlocal enabledelayedexpansion @@ -50,7 +50,7 @@ goto parseargument ) rem #endregion parseargument -if "%ALIASES%" neq "%CMDER_ROOT%\config\user-aliases.cmd" ( +if "%ALIASES%" neq "%CMDER_ROOT%\config\user_aliases.cmd" ( set _x=!_x:/f "%ALIASES%" =! if not exist "%ALIASES%" ( @@ -117,9 +117,9 @@ echo.Options: echo. echo. /d [alias] Delete an [alias]. echo. /f [macrofile] Path to the [macrofile] you want to store the new alias in. -echo. Default: %cmder_root%\config\user-aliases.cmd +echo. Default: %cmder_root%\config\user_aliases.cmd echo. /reload Reload the aliases file. Can be used with /f argument. -echo. Default: %cmder_root%\config\user-aliases.cmd +echo. Default: %cmder_root%\config\user_aliases.cmd echo. echo. If alias is called with no parameters, it will display the list of existing aliases. echo. diff --git a/vendor/clink.lua b/vendor/clink.lua index 5c64c03..2074664 100644 --- a/vendor/clink.lua +++ b/vendor/clink.lua @@ -285,31 +285,40 @@ end local function hg_prompt_filter() - -- Colors for mercurial status - local colors = { - clean = "\x1b[1;37;40m", - dirty = "\x1b[31;1m", - } + local result = "" - if get_hg_dir() then - -- if we're inside of mercurial repo then try to detect current branch - local branch = get_hg_branch() - local color - if branch then - -- Has branch => therefore it is a mercurial folder, now figure out status - if get_hg_status() then - color = colors.clean - else - color = colors.dirty + local hg_dir = get_hg_dir() + if hg_dir then + -- Colors for mercurial status + local colors = { + clean = "\x1b[1;37;40m", + dirty = "\x1b[31;1m", + } + + -- 'hg id' gives us BOTH the branch name AND an indicator that there + -- are uncommitted changes, in one fast(er) call + local pipe = io.popen("hg id 2>&1") + local output = pipe:read('*all') + local rc = { pipe:close() } + + if output ~= nil and + string.sub(output,1,7) ~= "abort: " and -- not an HG working copy + string.sub(output,1,12) ~= "000000000000" and -- empty wc (needs update) + (not string.find(output, "is not recognized")) then -- 'hg' not in path + local color = colors.clean + -- split elements on space delimiter + local items = {} + for i in string.gmatch(output, "%S+") do + table.insert(items, i) end - - clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", color.."("..branch..")") - return false + -- if the repo hash ends with '+', the wc has uncommitted changes + if string.sub(items[1], -1, -1) == "+" then color = colors.dirty end + -- substitute the branch in directly -- already WITH parentheses. :) + result = color .. items[2] -- string.sub(items[2], 1, string.len(items[2]) - 1) end end - -- No mercurial present or not in mercurial file - clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", "") + clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", result) return false end @@ -358,3 +367,27 @@ for _,lua_module in ipairs(clink.find_files(completions_dir..'*.lua')) do dofile(filename) end end + +local cmder_config_dir = clink.get_env('CMDER_ROOT')..'/config/' +for _,lua_module in ipairs(clink.find_files(cmder_config_dir..'*.lua')) do + -- Skip files that starts with _. This could be useful if some files should be ignored + if not string.match(lua_module, '^_.*') then + local filename = cmder_config_dir..lua_module + -- use dofile instead of require because require caches loaded modules + -- so config reloading using Alt-Q won't reload updated modules. + dofile(filename) + end +end + +if clink.get_env('CMDER_USER_CONFIG') then + local cmder_user_config_dir = clink.get_env('CMDER_USER_CONFIG')..'/' + for _,lua_module in ipairs(clink.find_files(cmder_user_config_dir..'*.lua')) do + -- Skip files that starts with _. This could be useful if some files should be ignored + if not string.match(lua_module, '^_.*') then + local filename = cmder_user_config_dir..lua_module + -- use dofile instead of require because require caches loaded modules + -- so config reloading using Alt-Q won't reload updated modules. + dofile(filename) + end + end +end diff --git a/vendor/cmder.sh b/vendor/cmder.sh index 90bca50..aa59642 100644 --- a/vendor/cmder.sh +++ b/vendor/cmder.sh @@ -1,6 +1,6 @@ # DO NOT EDIT THIS FILE IT WILL BE OVERWRITTEN ON UPDATE # -# Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh, +# Add portable user customizations ${CMDER_ROOT}/config/user_profile.sh, # these customizations will follow Cmder if $CMDER_ROOT is copied # to another machine. # @@ -63,21 +63,32 @@ if [ -d "${CMDER_USER_CONFIG}/profile.d" ] ; then runProfiled "${CMDER_USER_CONFIG}/profile.d" fi -initialConfig="${CMDER_ROOT}/config/user-profile.sh" -if [ -f "${CMDER_ROOT}/config/user-profile.sh" ] ; then - . "${CMDER_ROOT}/config/user-profile.sh" + +# Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency. +if [ -f "$CMDER_ROOT/config/user-profile.sh" ] ; then + mv "$CMDER_ROOT/config/user-profile.sh" "$CMDER_ROOT/config/user_profile.sh" +fi + +CmderUserProfilePath="${CMDER_ROOT}/config/user_profile.sh" +if [ -f "${CMDER_ROOT}/config/user_profile.sh" ] ; then + . "${CMDER_ROOT}/config/user_profile.sh" fi if [ "${CMDER_USER_CONFIG}" != "" ] ; then - initialConfig="${CMDER_USER_CONFIG}/user-profile.sh" - if [ -f "${CMDER_USER_CONFIG}/user-profile.sh" ] ; then - . "${CMDER_USER_CONFIG}/user-profile.sh" + # Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency. + if [ -f "$CMDER_USER_CONFIG/user-profile.sh" ] ; then + mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh" + fi + + CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh" + if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then + . "${CMDER_USER_CONFIG}/user_profile.sh" fi fi -if [ ! -f "${initialConfig}" ] ; then - echo Creating user startup file: "${initialConfig}" - cat <<-eof >"${initialConfig}" +if [ ! -f "${CmderUserProfilePath}" ] ; then + echo Creating user startup file: "${CmderUserProfilePath}" + cat <<-eof >"${CmderUserProfilePath}" # use this file to run your own startup commands for msys2 bash' # To add a new vendor to the path, do something like: diff --git a/vendor/cmder_exinit b/vendor/cmder_exinit index f20bef1..c182aee 100644 --- a/vendor/cmder_exinit +++ b/vendor/cmder_exinit @@ -1,4 +1,4 @@ -# Copy this file to your non integrated *nix-like environment, +# Copy this file to your non integrated *nix-like environment, # Cygwin/MSys2/Git for Windows SDK, installs '/etc/profile.d/' # folder to integrate the externally installed Unix like environment # into Cmder so it has access to settings stored in Cmder/config @@ -15,7 +15,7 @@ # These customizations will follow Cmder if $CMDER_ROOT is copied # to another machine. # -# Add system specific users customizations to $HOME/.bashrc, these +# Add system specific users customizations to $HOME/.bashrc, these # customizations will not follow Cmder to another machine. # # Uncomment and edit the CMDER_ROOT line to use Cmder/config even when launched @@ -58,45 +58,55 @@ fi if [ ! "$CMDER_ROOT" = "" ] ; then # Remove any trailing '/' CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::') - + echo "Using \"CMDER_ROOT\" at \"${CMDER_ROOT}\"." - + export CMDER_ROOT - + PATH=${CMDER_ROOT}/bin:$PATH:${CMDER_ROOT} - + export PATH - + # Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d" # to source them at startup. if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then mkdir -p "${CMDER_ROOT}/config/profile.d" fi - + if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then runProfiled "${CMDER_ROOT}/config/profile.d" fi - + if [ -d "${CMDER_USER_CONFIG}/profile.d" ] ; then runProfiled "${CMDER_USER_CONFIG}/profile.d" fi - - if [ -f "${CMDER_ROOT}/config/user-profile.sh" ] ; then - . "${CMDER_ROOT}/config/user-profile.sh" + + # Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency. + if [ -f "$CMDER_ROOT/config/user-profile.sh" ] ; then + mv "$CMDER_ROOT/config/user-profile.sh" "$CMDER_ROOT/config/user_profile.sh" fi - - if [ -f "${CMDER_USER_CONFIG}/user-profile.sh" ] ; then - . "${CMDER_USER_CONFIG}/user-profile.sh" - else - if [ "${CMDER_USER_CONFIG}" != "" ] ; then - initialProfile="${CMDER_USER_CONFIG}/user-profile.sh" - else - initialProfile="${CMDER_ROOT}/config/user-profile.sh" - fi - - echo Creating user startup file: "${initialProfile}" - cat <<-eof >"${initialProfile}" + + CmderUserProfilePath="${CMDER_ROOT}/config/user_profile.sh" + if [ -f "${CMDER_ROOT}/config/user_profile.sh" ] ; then + . "${CMDER_ROOT}/config/user_profile.sh" + fi + + if [ "${CMDER_USER_CONFIG}" != "" ] ; then + # Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency. + if [ -f "$CMDER_USER_CONFIG/user-profile.sh" ] ; then + mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh" + fi + + CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh" + if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then + . "${CMDER_USER_CONFIG}/user_profile.sh" + fi + fi + + if [ ! -f "${CmderUserProfilePath}" ] ; then + echo Creating user startup file: "${CmderUserProfilePath}" + cat <<-eof >"${CmderUserProfilePath}" # use this file to run your own startup commands for msys2 bash' # To add a new vendor to the path, do something like: diff --git a/vendor/init.bat b/vendor/init.bat index 99a86e7..f2f3880 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -4,12 +4,12 @@ :: 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 +:: !!! Use "%CMDER_ROOT%\config\user_profile.cmd" to add your own startup commands :: Use /v command line arg or set to > 0 for verbose output to aid in debugging. endlocal -set verbose-output=0 -set debug-output=0 +set verbose_output=0 +set debug_output=0 set max_depth=1 set "CMDER_USER_FLAGS= " @@ -39,9 +39,9 @@ call "%cmder_root%\vendor\lib\lib_profile" if "%~1" == "" ( goto :start ) else if /i "%1"=="/v" ( - set verbose-output=1 + set verbose_output=1 ) else if /i "%1"=="/d" ( - set debug-output=1 + set debug_output=1 ) else if /i "%1" == "/max_depth" ( if "%~2" geq "1" if "%~2" leq "5" ( set "max_depth=%~2" @@ -60,7 +60,7 @@ call "%cmder_root%\vendor\lib\lib_profile" ) ) else if /i "%1" == "/user_aliases" ( if exist "%~2" ( - set "user-aliases=%~2" + set "user_aliases=%~2" shift ) ) else if /i "%1" == "/git_install_root" ( @@ -89,11 +89,13 @@ call "%cmder_root%\vendor\lib\lib_profile" goto var_loop :start -%lib_console% debug-output init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%" -%lib_console% debug-output init.bat "Env Var - debug-output=%debug-output%" +:: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES +%lib_base% cmder_shell +%lib_console% debug_output init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%" +%lib_console% debug_output init.bat "Env Var - debug_output=%debug_output%" if defined CMDER_USER_CONFIG ( - %lib_console% debug-output init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%CMDER_USER_CONFIG%'!" + %lib_console% debug_output init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%CMDER_USER_CONFIG%'!" ) :: Pick right version of clink @@ -105,21 +107,25 @@ if "%PROCESSOR_ARCHITECTURE%"=="x86" ( set architecture_bits=64 ) -:: Tell the user about the clink config files... -if defined "%CMDER_USER_CONFIG%\settings" if not exist "%CMDER_USER_CONFIG%\settings" ( - echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" - echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ +if "%CMDER_CLINK%" == "1" ( + %lib_console% verbose_output "Injecting Clink!" -} else if not exist "%CMDER_ROOT%\config\settings" ( - echo Generating clink initial settings in "%CMDER_ROOT%\config\settings" - echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. -) - -:: Run clink -if defined CMDER_USER_CONFIG ( + :: Run clink + if defined CMDER_USER_CONFIG ( + if not exist "%CMDER_USER_CONFIG%\settings" ( + echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" + echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ + ) "%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" -) else ( + ) else ( + if not exist "%CMDER_ROOT%\config\settings" ( + echo Generating clink initial settings in "%CMDER_ROOT%\config\settings" + echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. + ) "%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor" + ) +) else ( + %lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" ) :: Prepare for git-for-windows @@ -135,10 +141,10 @@ if not defined TERM set TERM=cygwin :: also check that we have a recent enough version of git by examining the version string setlocal enabledelayedexpansion if defined GIT_INSTALL_ROOT ( - if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :FOUND_GIT) + if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :FOUND_GIT ) -%lib_console% debug-output init.bat "Looking for Git install root..." +%lib_console% debug_output init.bat "Looking for Git install root..." :: get the version information for vendored git binary %lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" @@ -169,19 +175,18 @@ for /F "delims=" %%F in ('where git.exe 2^>nul') do ( set test_dir= goto :FOUND_GIT ) else ( - call :verbose-output Found old !GIT_VERSION_USER! in "!test_dir!", but not using... + call :verbose_output Found old !GIT_VERSION_USER! in "!test_dir!", but not using... set test_dir= ) ) else ( :: if the user provided git executable is not found if !errorlevel! equ -255 ( - call :verbose-output No git at "!git_executable!" found. + call :verbose_output No git at "!git_executable!" found. set test_dir= ) ) - ) :: our last hope: our own git... @@ -207,11 +212,15 @@ if defined GIT_INSTALL_ROOT ( :: define SVN_SSH so we can use git svn with ssh svn repositories if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe" + + for /F "delims=" %%F in ('env /usr/bin/locale -uU 2') do ( + set "LANG=%%F" + ) ) -endlocal & set "PATH=%PATH%" & set "SVN_SSH=%SVN_SSH%" & set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" -%lib_console% debug-output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" -%lib_console% debug-output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" +endlocal & set "PATH=%PATH%" & set "LANG=%LANG%" & set "SVN_SSH=%SVN_SSH%" & set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" +%lib_console% debug_output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" +%lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" goto :PATH_ENHANCE :NO_GIT @@ -219,6 +228,7 @@ goto :PATH_ENHANCE endlocal :PATH_ENHANCE +%lib_path% enhance_path "%CMDER_ROOT%\vendor\bin" %lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" %max_depth% if defined CMDER_USER_BIN ( %lib_path% enhance_path_recursive "%CMDER_USER_BIN%" %max_depth% @@ -236,59 +246,63 @@ if defined CMDER_USER_CONFIG ( :: 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.example', +:: must also be self executing, see '.\user_aliases.cmd.example', :: and be in profile.d folder. -if not defined user-aliases ( +if not defined user_aliases ( if defined CMDER_USER_CONFIG ( - set "user-aliases=%CMDER_USER_CONFIG%\user-aliases.cmd" + set "user_aliases=%CMDER_USER_CONFIG%\user_aliases.cmd" ) else ( - set "user-aliases=%CMDER_ROOT%\config\user-aliases.cmd" + set "user_aliases=%CMDER_ROOT%\config\user_aliases.cmd" ) ) -:: The aliases environment variable is used by alias.bat to id -:: the default file to store new aliases in. -if not defined aliases ( - set "aliases=%user-aliases%" -) +if "%CMDER_ALIASES%" == "1" ( + 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%" + ) -:: Make sure we have a self-extracting user-aliases.cmd file -setlocal enabledelayedexpansion -if not exist "%user-aliases%" ( - echo Creating initial user-aliases store in "%user-aliases%"... - copy "%CMDER_ROOT%\vendor\user-aliases.cmd.example" "%user-aliases%" -) else ( - type "%user-aliases%" | findstr /i ";= Add aliases below here" >nul - if "!errorlevel!" == "1" ( - echo Creating initial user-aliases store in "%user-aliases%"... - if defined CMDER_USER_CONFIG ( - copy "%user-aliases%" "%user-aliases%.old_format" - copy "%CMDER_ROOT%\vendor\user-aliases.cmd.example" "%user-aliases%" - ) else ( - copy "%user-aliases%" "%user-aliases%.old_format" - copy "%CMDER_ROOT%\vendor\user-aliases.cmd.example" "%user-aliases%" - ) - ) -) + REM Make sure we have a self-extracting user_aliases.cmd file + setlocal enabledelayedexpansion + if not exist "%user_aliases%" ( + echo Creating initial user_aliases store in "%user_aliases%"... + copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_aliases%" + ) else ( + type "%user_aliases%" | findstr /i ";= Add aliases below here" >nul + if "!errorlevel!" == "1" ( + echo Creating initial user_aliases store in "%user_aliases%"... + if defined CMDER_USER_CONFIG ( + copy "%user_aliases%" "%user_aliases%.old_format" + copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_aliases%" + ) else ( + copy "%user_aliases%" "%user_aliases%.old_format" + copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_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" + :: 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" + ) + endlocal ) -endlocal :: Add aliases to the environment -call "%user-aliases%" +call "%user_aliases%" :: 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 if exist "%GIT_INSTALL_ROOT%\post-install.bat" ( - %lib_console% verbose-output "Running Git for Windows one time Post Install...." + %lib_console% verbose_output "Running Git for Windows one time Post Install...." pushd "%GIT_INSTALL_ROOT%\" "%GIT_INSTALL_ROOT%\git-bash.exe" --no-needs-console --hide --no-cd --command=post-install.bat popd @@ -296,19 +310,19 @@ if exist "%GIT_INSTALL_ROOT%\post-install.bat" ( :: Set home path if not defined HOME set "HOME=%USERPROFILE%" -%lib_console% debug-output init.bat "Env Var - HOME=%HOME%" +%lib_console% debug_output init.bat "Env Var - HOME=%HOME%" -set "initialConfig=%CMDER_ROOT%\config\user-profile.cmd" -if exist "%CMDER_ROOT%\config\user-profile.cmd" ( +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 - call "%CMDER_ROOT%\config\user-profile.cmd" + call "%CMDER_ROOT%\config\user_profile.cmd" ) if defined CMDER_USER_CONFIG ( - set "initialConfig=%CMDER_USER_CONFIG%\user-profile.cmd" - if exist "%CMDER_USER_CONFIG%\user-profile.cmd" ( + 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 - call "%CMDER_USER_CONFIG%\user-profile.cmd" + call "%CMDER_USER_CONFIG%\user_profile.cmd" ) ) @@ -341,5 +355,19 @@ echo @echo off ) >"%initialConfig%" ) +if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMDER_ROOT%\vendor\bin\alias.cmd" ( + 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'. +) + set initialConfig= + exit /b diff --git a/vendor/lib/lib_base.cmd b/vendor/lib/lib_base.cmd index 37a1072..8577637 100644 --- a/vendor/lib/lib_base.cmd +++ b/vendor/lib/lib_base.cmd @@ -43,3 +43,34 @@ exit /b pause exit /b + +:cmder_shell +:::=============================================================================== +:::show_subs - shows all sub routines in a .bat/.cmd file with documentation +:::. +:::include: +:::. +::: call "lib_base.cmd" +:::. +:::usage: +:::. +::: %lib_base% cmder_shell +:::. +:::options: +:::. +::: file full path to file containing lib_routines to display +:::. +:::------------------------------------------------------------------------------- + echo %comspec% | find /i "\cmd.exe" > nul && set "CMDER_SHELL=cmd" + echo %comspec% | find /i "\tcc.exe" > nul && set "CMDER_SHELL=tcc" + echo %comspec% | find /i "\tccle" > nul && set "CMDER_SHELL=tccle" + + set CMDER_CLINK=1 + if "%CMDER_SHELL%" equ "tcc" set CMDER_CLINK=0 + if "%CMDER_SHELL%" equ "tccle" set CMDER_CLINK=0 + + set CMDER_ALIASES=1 + if "%CMDER_SHELL%" equ "tcc" set CMDER_ALIASES=0 + if "%CMDER_SHELL%" equ "tccle" set CMDER_ALIASES=0 + + exit /b diff --git a/vendor/lib/lib_console.cmd b/vendor/lib/lib_console.cmd index 4de7525..3c174b0 100644 --- a/vendor/lib/lib_console.cmd +++ b/vendor/lib/lib_console.cmd @@ -13,9 +13,9 @@ if "%~1" == "/h" ( exit /b -:debug-output +:debug_output :::=============================================================================== -:::debug-output - Output a debug message to the console. +:::debug_output - Output a debug message to the console. :::. :::include: :::. @@ -23,22 +23,22 @@ exit /b :::. :::usage: :::. -::: %lib_console% debug-output [caller] [message] +::: %lib_console% debug_output [caller] [message] :::. :::required: :::. -::: [caller] Script/sub routine name calling debug-output +::: [caller] Script/sub routine name calling debug_output :::. ::: [message] Message text to display. :::. :::------------------------------------------------------------------------------- - if %debug-output% gtr 0 echo DEBUG(%~1): %~2 & echo. + if %debug_output% gtr 0 echo DEBUG(%~1): %~2 & echo. exit /b -:verbose-output +:verbose_output :::=============================================================================== -:::verbose-output - Output a debug message to the console. +:::verbose_output - Output a debug message to the console. :::. :::include: :::. @@ -46,7 +46,7 @@ exit /b :::. :::usage: :::. -::: %lib_console% verbose-output "[message]" +::: %lib_console% verbose_output "[message]" :::. :::required: :::. @@ -54,7 +54,7 @@ exit /b :::. :::------------------------------------------------------------------------------- - if %verbose-output% gtr 0 echo %~1 + if %verbose_output% gtr 0 echo %~1 exit /b :show_error diff --git a/vendor/lib/lib_git.cmd b/vendor/lib/lib_git.cmd index d703e58..fc040f0 100644 --- a/vendor/lib/lib_git.cmd +++ b/vendor/lib/lib_git.cmd @@ -42,11 +42,11 @@ exit /b :: set the executable path set "git_executable=%~2\git.exe" - %lib_console% debug-output :read_version "Env Var - git_executable=%git_executable%" + %lib_console% debug_output :read_version "Env Var - git_executable=%git_executable%" :: check if the executable actually exists if not exist "%git_executable%" ( - %lib_console% debug-output :read_version "%git_executable% does not exist." + %lib_console% debug_output :read_version "%git_executable% does not exist." exit /b -255 ) @@ -54,7 +54,7 @@ exit /b for /F "tokens=1,2,3 usebackq" %%A in (`"%git_executable%" --version 2^>nul`) do ( if /i "%%A %%B" == "git version" ( set "GIT_VERSION_%~1=%%C" - %lib_console% debug-output :read_version "Env Var - GIT_VERSION_%~1=%%C" + %lib_console% debug_output :read_version "Env Var - GIT_VERSION_%~1=%%C" ) else ( %lib_console% show_error "git --version" returned an inproper version string! pause @@ -124,7 +124,7 @@ exit /b call :parse_version %~1 %~2 :: ... and maybe display it, for debugging purposes. - %lib_console% debug-output :validate_version "Found Git Version for %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!" + %lib_console% debug_output :validate_version "Found Git Version for %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!" exit /b :compare_versions @@ -148,9 +148,9 @@ exit /b :: checks all major, minor, patch and build variables for the given arguments. :: whichever binary that has the most recent version will be used based on the return code. - :: %lib_console% debug-output Comparing: - :: %lib_console% debug-output %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD! - :: %lib_console% debug-output %~2: !%~2_MAJOR!.!%~2_MINOR!.!%~2_PATCH!.!%~2_BUILD! + :: %lib_console% debug_output Comparing: + :: %lib_console% debug_output %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD! + :: %lib_console% debug_output %~2: !%~2_MAJOR!.!%~2_MINOR!.!%~2_PATCH!.!%~2_BUILD! if !%~1_MAJOR! GTR !%~2_MAJOR! (exit /b 1) if !%~1_MAJOR! LSS !%~2_MAJOR! (exit /b -1) diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index 1d8c9e7..0b478d4 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -57,28 +57,28 @@ exit /b set "find_query=%find_query: =\ %" set found=0 - %lib_console% debug-output :enhance_path "Env Var - find_query=%find_query%" - echo "%PATH%"|findstr >nul /I /R ";%find_query%\"$" + %lib_console% debug_output :enhance_path "Env Var - find_query=%find_query%" + echo "%path%"|findstr >nul /I /R ";%find_query%\"$" if "!ERRORLEVEL!" == "0" set found=1 - %lib_console% debug-output :enhance_path "Env Var 1 - found=!found!" + %lib_console% debug_output :enhance_path "Env Var 1 - found=!found!" if "!found!" == "0" ( - echo "%PATH%"|findstr >nul /i /r ";%find_query%;" + echo "%path%"|findstr >nul /i /r ";%find_query%;" if "!ERRORLEVEL!" == "0" set found=1 - %lib_console% debug-output :enhance_path "Env Var 2 - found=!found!" + %lib_console% debug_output :enhance_path "Env Var 2 - found=!found!" ) if "%found%" == "0" ( - %lib_console% debug-output :enhance_path "BEFORE Env Var - PATH=!path!" + %lib_console% debug_output :enhance_path "BEFORE Env Var - PATH=!path!" if /i "%position%" == "append" ( - %lib_console% debug-output :enhance_path "Appending '%add_path%'" + %lib_console% debug_output :enhance_path "Appending '%add_path%'" set "PATH=%PATH%;%add_path%" ) else ( - %lib_console% debug-output :enhance_path "Prepending '%add_path%'" + %lib_console% debug_output :enhance_path "Prepending '%add_path%'" set "PATH=%add_path%;%PATH%" ) - %lib_console% debug-output :enhance_path "AFTER Env Var - PATH=!path!" + %lib_console% debug_output :enhance_path "AFTER Env Var - PATH=!path!" ) endlocal & set "PATH=%PATH:;;=;%" @@ -134,20 +134,20 @@ exit /b if "%depth%" == "" set depth=0 - %lib_console% debug-output :enhance_path_recursive "Env Var - add_path=%add_path%" - %lib_console% debug-output :enhance_path_recursive "Env Var - position=%position%" - %lib_console% debug-output :enhance_path_recursive "Env Var - max_depth=%max_depth%" + %lib_console% debug_output :enhance_path_recursive "Env Var - add_path=%add_path%" + %lib_console% debug_output :enhance_path_recursive "Env Var - position=%position%" + %lib_console% debug_output :enhance_path_recursive "Env Var - max_depth=%max_depth%" if %max_depth% gtr !depth! ( - %lib_console% debug-output :enhance_path_recursive "Adding parent directory - '%add_path%'" + %lib_console% debug_output :enhance_path_recursive "Adding parent directory - '%add_path%'" call :enhance_path "%add_path%" %position% set /a "depth=!depth!+1" for /d %%i in ("%add_path%\*") do ( - %lib_console% debug-output :enhance_path_recursive "Env Var BEFORE - depth=!depth!" - %lib_console% debug-output :enhance_path_recursive "Found Subdirectory - '%%~fi'" + %lib_console% debug_output :enhance_path_recursive "Env Var BEFORE - depth=!depth!" + %lib_console% debug_output :enhance_path_recursive "Found Subdirectory - '%%~fi'" call :enhance_path_recursive "%%~fi" %max_depth% %position% - %lib_console% debug-output :enhance_path_recursive "Env Var AFTER- depth=!depth!" + %lib_console% debug_output :enhance_path_recursive "Env Var AFTER- depth=!depth!" ) ) diff --git a/vendor/lib/lib_profile.cmd b/vendor/lib/lib_profile.cmd index 82dbb4a..98bc9f0 100644 --- a/vendor/lib/lib_profile.cmd +++ b/vendor/lib/lib_profile.cmd @@ -39,7 +39,7 @@ exit /b pushd "%~1" for /f "usebackq" %%x in ( `dir /b *.bat *.cmd 2^>nul` ) do ( - %lib_console% verbose-output "Calling '%~1\%%x'..." + %lib_console% verbose_output "Calling '%~1\%%x'..." call "%~1\%%x" ) popd diff --git a/vendor/profile.ps1 b/vendor/profile.ps1 index b59e773..8c9f207 100644 --- a/vendor/profile.ps1 +++ b/vendor/profile.ps1 @@ -2,7 +2,7 @@ # Created as part of cmder project # !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED -# !!! Use "%CMDER_ROOT%\config\user-profile.ps1" to add your own startup commands +# !!! Use "%CMDER_ROOT%\config\user_profile.ps1" to add your own startup commands # Compatibility with PS major versions <= 2 if(!$PSScriptRoot) { @@ -97,7 +97,7 @@ $env:Path = "$Env:CMDER_ROOT\bin;$env:Path;$Env:CMDER_ROOT" # # Prompt Section -# Users should modify their user-profile.ps1 as it will be safe from updates. +# Users should modify their user_profile.ps1 as it will be safe from updates. # # Pre assign the hooks so the first run of cmder gets a working prompt. @@ -134,7 +134,7 @@ if (-not (test-path "$ENV:CMDER_ROOT\config\profile.d")) { pushd $ENV:CMDER_ROOT\config\profile.d foreach ($x in Get-ChildItem *.ps1) { # write-host write-host Sourcing $x - . $x + Import-Module $x } popd @@ -144,23 +144,31 @@ if ($ENV:CMDER_USER_CONFIG -ne "" -and (test-path "$ENV:CMDER_USER_CONFIG\profil pushd $ENV:CMDER_USER_CONFIG\profile.d foreach ($x in Get-ChildItem *.ps1) { # write-host write-host Sourcing $x - . $x + Import-Module $x } popd } +# Renaming to "config\user_profile.ps1" to "user_profile.ps1" for consistency. +if (test-path "$env:CMDER_ROOT\config\user-profile.ps1") { + rename-item "$env:CMDER_ROOT\config\user-profile.ps1" user_profile.ps1 +} - -$CmderUserProfilePath = Join-Path $env:CMDER_ROOT "config\user-profile.ps1" +$CmderUserProfilePath = Join-Path $env:CMDER_ROOT "config\user_profile.ps1" if (Test-Path $CmderUserProfilePath) { # Create this file and place your own command in there. - . "$CmderUserProfilePath" + Import-Module "$CmderUserProfilePath" } if ($ENV:CMDER_USER_CONFIG) { - $CmderUserProfilePath = Join-Path $ENV:CMDER_USER_CONFIG "user-profile.ps1" + # Renaming to "$env:CMDER_USER_CONFIG\user-profile.ps1" to "user_profile.ps1" for consistency. + if (test-path "$env:CMDER_USER_CONFIG\user-profile.ps1") { + rename-item "$env:CMDER_USER_CONFIG\user-profile.ps1" user_profile.ps1 + } + + $CmderUserProfilePath = Join-Path $ENV:CMDER_USER_CONFIG "user_profile.ps1" if (Test-Path $CmderUserProfilePath) { - . "$CmderUserProfilePath" + Import-Module "$CmderUserProfilePath" } } diff --git a/vendor/sources.json b/vendor/sources.json index 437a4ee..72696ce 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,8 +1,8 @@ [ { "name": "git-for-windows", - "version": "v2.17.1.windows.2", - "url": "https://github.com/git-for-windows/git/releases/download/v2.17.1.windows.2/PortableGit-2.17.1.2-64-bit.7z.exe" + "version": "v2.19.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.19.0.windows.1/PortableGit-2.19.0-64-bit.7z.exe" }, { "name": "clink", @@ -11,8 +11,8 @@ }, { "name": "conemu-maximus5", - "version": "180528", - "url": "https://github.com/Maximus5/ConEmu/releases/download/v18.05.28/ConEmuPack.180528.7z" + "version": "180626", + "url": "https://github.com/Maximus5/ConEmu/releases/download/v18.06.26/ConEmuPack.180626.7z" }, { "name": "clink-completions", diff --git a/vendor/user-aliases.cmd.example b/vendor/user_aliases.cmd.example similarity index 100% rename from vendor/user-aliases.cmd.example rename to vendor/user_aliases.cmd.example