mirror of
https://github.com/cmderdev/cmder.git
synced 2025-07-17 04:59:09 +08:00
Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
0cf1c5e2eb | |||
ddec3e8425 | |||
2428e8529f | |||
3eb82d4095 | |||
589b48d06e | |||
67f35bc05d | |||
9724151f06 | |||
c04cc6dc7f | |||
3ee244e4c1 | |||
44bc089ee4 | |||
6ab4599a4d | |||
dac4b27e28 | |||
661f59d0fb | |||
5a6f873d2b | |||
788d4e0caa | |||
f1fbd98093 | |||
74fcb5b62b | |||
60279fea04 | |||
7877d417f8 | |||
44a8bf5802 | |||
b70a03cde0 | |||
8cf51e454a | |||
f1b1ac0ec1 | |||
06b0c0d3c2 | |||
f1a9721256 | |||
46c8099317 | |||
f44c68273b | |||
7f69f15637 | |||
3736508b2c | |||
4575ac3209 | |||
035f209bc4 | |||
e4651cf7b4 | |||
19a2fd11e3 | |||
feee4eaed2 | |||
b310a2c47c | |||
22afc40a08 | |||
c499456f97 | |||
34468ef2fd | |||
5cb8021864 | |||
468dba474e | |||
db42252ef2 | |||
57b328b209 | |||
05836e761e | |||
e8b33aa45b | |||
377d97e56a | |||
3a44bc809d | |||
45e5600249 |
10
.github/issue_template.md
vendored
10
.github/issue_template.md
vendored
@ -84,7 +84,10 @@
|
|||||||
<!--
|
<!--
|
||||||
Some tips on how to write a better report:
|
Some tips on how to write a better report:
|
||||||
- Put an `x` into all the boxes [ ] relevant to your issue (correct example: [x] -- not like this: [ x] or [x ]).
|
- Put an `x` into all the boxes [ ] relevant to your issue (correct example: [x] -- not like this: [ x] or [x ]).
|
||||||
|
- Any text that is between the the commment tags will get ignored, e.g.: <!-- this will NOT work -- >
|
||||||
|
You need to write your text either outside the tags, or the line below it.
|
||||||
- Use the *Preview* tab to see how your issue will actually look like, before sending it.
|
- Use the *Preview* tab to see how your issue will actually look like, before sending it.
|
||||||
|
⚠ If for some reason you can not see the text you just wrote, make sure you've read the instructions clearly
|
||||||
- Make sure the description is worded well enough to be understood, and with as much context and examples as possible.
|
- Make sure the description is worded well enough to be understood, and with as much context and examples as possible.
|
||||||
- Post a screenshot or the command the triggered the problem, if applicable.
|
- Post a screenshot or the command the triggered the problem, if applicable.
|
||||||
- Avoid using ambiguous phrases like: doesn't work, there'a problem, etc.
|
- Avoid using ambiguous phrases like: doesn't work, there'a problem, etc.
|
||||||
@ -93,6 +96,7 @@
|
|||||||
We can't process your issue if it's written in Russian or Chinese as we can't understand them.
|
We can't process your issue if it's written in Russian or Chinese as we can't understand them.
|
||||||
- You can find the version of Cmder.exe and ConEmu.exe binaries using Right Click → Properties → Details menu.
|
- You can find the version of Cmder.exe and ConEmu.exe binaries using Right Click → Properties → Details menu.
|
||||||
- ⚠ Read the following page to avoid posting a bad issue: https://conemu.github.io/en/BadIssue.html
|
- ⚠ Read the following page to avoid posting a bad issue: https://conemu.github.io/en/BadIssue.html
|
||||||
|
- Failure to follow these guidelines may result in your issue getting closed. So please follow it carefully!
|
||||||
-->
|
-->
|
||||||
|
|
||||||
### Purpose of the issue
|
### Purpose of the issue
|
||||||
@ -101,9 +105,9 @@
|
|||||||
- [ ] Question
|
- [ ] Question
|
||||||
|
|
||||||
### Version Information
|
### Version Information
|
||||||
<!-- Please write your Cmder and ConEmu version here -->
|
<!-- Please write your Cmder and ConEmu version below this line -->
|
||||||
|
|
||||||
<!-- If applicable, write down your Windows edition too (e.g. Windows 10 Pro 1809) -->
|
<!-- If applicable, write down your Windows edition too below this line (e.g. Windows 10 Pro 1903) -->
|
||||||
|
|
||||||
### Description of the issue
|
### Description of the issue
|
||||||
<!-- Provide a clear, simple description of your issue here -->
|
<!-- Provide a clear, simple description of your issue below this line -->
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -8,7 +8,7 @@ vendor/*/*
|
|||||||
!vendor/bin/*
|
!vendor/bin/*
|
||||||
!vendor/lib/*
|
!vendor/lib/*
|
||||||
!vendor/*
|
!vendor/*
|
||||||
!vendor/psmodules/PsGet
|
!vendor/psmodules/*
|
||||||
|
|
||||||
config/*
|
config/*
|
||||||
!config/Readme.md
|
!config/Readme.md
|
||||||
|
39
CHANGELOG.md
39
CHANGELOG.md
@ -1,6 +1,38 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
## [1.3.12](https://github.com/cmderdev/cmder/tree/v1.3.12) (2019-08-18)
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [1.3.13](https://github.com/cmderdev/cmder/tree/v1.3.12) (2019-11-03)
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
* Update to Conemu 19.10.12
|
||||||
|
|
||||||
|
### Adds
|
||||||
|
|
||||||
|
* #2197, #1364, #447 Add ability to disable git status either globally or for individual repos.
|
||||||
|
* To disable git status globally add the following to `~/.gitconfig` or locally for a single repo `[repo]/.git/config`:
|
||||||
|
|
||||||
|
```
|
||||||
|
[cmder]
|
||||||
|
status = false
|
||||||
|
```
|
||||||
|
|
||||||
|
* #2174 `--` Syntax to pass command line options to Conemu.
|
||||||
|
* Disable Clink Logging
|
||||||
|
* Add `~` tab completion.
|
||||||
|
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
* Fix #2191: profile.ps1: CheckGit does not export $gitLoaded
|
||||||
|
* Fix #2192: Set default prompt hooks before loading user profile
|
||||||
|
* Fix #2097, #1899: powershell foreground color changing to green
|
||||||
|
* Fix #1979: Update Clink Completions to 0.3.4
|
||||||
|
* Fix #1678: Cmder corrupting path with `!` in Cmder folder path.
|
||||||
|
|
||||||
|
|
||||||
|
## [1.3.12](https://github.com/cmderdev/cmder/tree/v1.3.12) (2019-08-19)
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
@ -33,6 +65,11 @@
|
|||||||
* Syntax: `/x [ConEmu extras arguments]`
|
* Syntax: `/x [ConEmu extras arguments]`
|
||||||
* e.g.: `Cmder.exe /x "-min -tsa"`
|
* e.g.: `Cmder.exe /x "-min -tsa"`
|
||||||
|
|
||||||
|
* Pull Request: [#2072](https://github.com/cmderdev/cmder/pull/2072)
|
||||||
|
* New alias create [alias] [alias command] syntax
|
||||||
|
* Based on [#1750](https://github.com/cmderdev/cmder/pull/1750)
|
||||||
|
* Syntax: `alias create [alias] [alias command]`
|
||||||
|
|
||||||
## [1.3.11](https://github.com/cmderdev/cmder/tree/v1.3.11) (2018-12-22)
|
## [1.3.11](https://github.com/cmderdev/cmder/tree/v1.3.11) (2018-12-22)
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
30
README.md
30
README.md
@ -92,8 +92,8 @@ _(Some shortcuts are not yet documented, though they exist - please document the
|
|||||||
### Access to multiple shells in one window using tabs
|
### Access to multiple shells in one window using tabs
|
||||||
You can open multiple tabs each containing one of the following shells:
|
You can open multiple tabs each containing one of the following shells:
|
||||||
|
|
||||||
| Task | Shell | Description |
|
| Task | Shell | Description |
|
||||||
| ---- | ----- | ----------- |
|
| ---- | ----- | ----------- |
|
||||||
| Cmder | `cmd.exe` | Windows `cmd.exe` shell enhanced with Git, Git aware prompt, Clink (GNU Readline), and Aliases. |
|
| Cmder | `cmd.exe` | Windows `cmd.exe` shell enhanced with Git, Git aware prompt, Clink (GNU Readline), and Aliases. |
|
||||||
| Cmder as Admin | `cmd.exe` | Administrative Windows `cmd.exe` Cmder shell. |
|
| Cmder as Admin | `cmd.exe` | Administrative Windows `cmd.exe` Cmder shell. |
|
||||||
| PowerShell | `powershell.exe` | Windows PowerShell enhanced with Git and Git aware prompt . |
|
| PowerShell | `powershell.exe` | Windows PowerShell enhanced with Git and Git aware prompt . |
|
||||||
@ -164,17 +164,31 @@ Single user portable configuration is possible using the cmder specific shell co
|
|||||||
| ------------- | ----------------------------------------- |
|
| ------------- | ----------------------------------------- |
|
||||||
| Cmder | `%CMDER_ROOT%\config\user_profile.cmd` |
|
| Cmder | `%CMDER_ROOT%\config\user_profile.cmd` |
|
||||||
| PowerShell | `$ENV:CMDER_ROOT\config\user_profile.ps1` |
|
| PowerShell | `$ENV:CMDER_ROOT\config\user_profile.ps1` |
|
||||||
| Bash/Mintty | `$CMDER_ROOT/config/user_profile.sh` |
|
| 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.
|
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.
|
||||||
|
|
||||||
| Shell | Cmder `Profile.d` Scripts |
|
| Shell | Cmder `Profile.d` Scripts |
|
||||||
| ------------- | --------------------------------------------------|
|
| ------------- | -------------------------------------------------- |
|
||||||
| Cmder | `%CMDER_ROOT%\config\profile.d\*.bat and *.cmd` |
|
| Cmder | `%CMDER_ROOT%\config\profile.d\*.bat and *.cmd` |
|
||||||
| PowerShell | `$ENV:CMDER_ROOT\config\profile.d\*.ps1` |
|
| PowerShell | `$ENV:CMDER_ROOT\config\profile.d\*.ps1` |
|
||||||
| Bash/Mintty | `$CMDER_ROOT/config/profile.d/*.sh` |
|
| Bash/Mintty | `$CMDER_ROOT/config/profile.d/*.sh` |
|
||||||
|
|
||||||
|
#### Git Status Opt-Out
|
||||||
|
|
||||||
|
To disable Cmder prompt git status globally add the following to `~/.gitconfig` or locally for a single repo `[repo]/.git/config` and start a new session.
|
||||||
|
|
||||||
|
*Note: This configuration is not portable*
|
||||||
|
|
||||||
|
```
|
||||||
|
[cmder]
|
||||||
|
status = false # Opt out of Git status for 'ALL' Cmder supported shells.
|
||||||
|
cmdstatus = false # Opt out of Git status for 'Cmd.exe' shells.
|
||||||
|
psstatus = false # Opt out of Git status for 'Powershell.exe and 'Pwsh.exe' shells.
|
||||||
|
shstatus = false # Opt out of Git status for 'bash.exe' shells.
|
||||||
|
```
|
||||||
|
|
||||||
### Aliases
|
### Aliases
|
||||||
#### Cmder(`Cmd.exe`) Aliases
|
#### Cmder(`Cmd.exe`) Aliases
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
All config files must be in this folder. If there is no option to set this folder
|
All config files must be in this folder. If there is no option to set this folder
|
||||||
directly, it has to be hardlinked.
|
directly, it has to be hardlinked.
|
||||||
|
|
||||||
* `user-aliases.cmd`: aliases in cmd; called from vendor\init.bat; autocreated from
|
* `user_aliases.cmd`: aliases in cmd; called from vendor\init.bat; autocreated from
|
||||||
`vendor\user-aliases.cmd.default`.
|
`vendor\user_aliases.cmd.default`.
|
||||||
* `*.lua`: clink completions and prompt filters; autoloaded after all
|
* `*.lua`: clink completions and prompt filters; autoloaded after all
|
||||||
prompt filter and clink completions are initialized; add your own.
|
prompt filter and clink completions are initialized; add your own.
|
||||||
* `user-profile.{sh|cmd|ps1}`: startup files for bash|cmd|powershell tasks; called from their
|
* `user_profile.{sh|cmd|ps1}`: startup files for bash|cmd|powershell tasks; called from their
|
||||||
respective startup scripts in `vendor\`; autocreated from
|
respective startup scripts in `vendor\`; autocreated from
|
||||||
`vendor\user-profile.{sh|cmd|ps1}.default` on first start of such a task.
|
`vendor\user_profile.{sh|cmd|ps1}.default` on first start of such a task.
|
||||||
* `.history`: the current commandline history; autoupdated on close.
|
* `.history`: the current commandline history; autoupdated on close.
|
||||||
* `settings`: settings for readline; overwritten on update.
|
* `settings`: settings for readline; overwritten on update.
|
||||||
* `ConEmu.xml`: settings from ConEmu (=the UI of cmder -> Preferences); overwritten on update.
|
* `user-ConEmu.xml`: settings from ConEmu the UI of Cmder. ;
|
||||||
|
Do not edit this file directly it is overwritten on each cmder.exe launch.
|
||||||
|
@ -633,6 +633,17 @@ cmderOptions GetOption()
|
|||||||
cmderOptions.cmderConEmuArgs = szArgList[i + 1];
|
cmderOptions.cmderConEmuArgs = szArgList[i + 1];
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
/* Bare double dash, remaining commandline is for conemu */
|
||||||
|
else if (_wcsicmp(L"--", szArgList[i]) == 0)
|
||||||
|
{
|
||||||
|
std::wstring cmdline = std::wstring(GetCommandLineW());
|
||||||
|
auto doubledash = cmdline.find(L" -- ");
|
||||||
|
if (doubledash != std::string::npos)
|
||||||
|
{
|
||||||
|
cmderOptions.cmderConEmuArgs = cmdline.substr(doubledash + 4);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
else if (cmderOptions.cmderStart == L"")
|
else if (cmderOptions.cmderStart == L"")
|
||||||
{
|
{
|
||||||
int len = wcslen(szArgList[i]);
|
int len = wcslen(szArgList[i]);
|
||||||
|
74
vendor/clink.lua
vendored
74
vendor/clink.lua
vendored
@ -280,6 +280,24 @@ local function get_svn_status()
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---
|
||||||
|
-- Get the status of working dir
|
||||||
|
-- @return {bool}
|
||||||
|
---
|
||||||
|
local function get_git_status_setting()
|
||||||
|
gitStatusSetting = io.popen("git --no-pager config -l 2>nul")
|
||||||
|
|
||||||
|
for line in gitStatusSetting:lines() do
|
||||||
|
if string.match(line, 'cmder.status=false') or string.match(line, 'cmder.cmdstatus=false') then
|
||||||
|
gitStatusSetting:close()
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
gitStatusSetting:close()
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
local function git_prompt_filter()
|
local function git_prompt_filter()
|
||||||
|
|
||||||
-- Colors for git status
|
-- Colors for git status
|
||||||
@ -290,27 +308,30 @@ local function git_prompt_filter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
local git_dir = get_git_dir()
|
local git_dir = get_git_dir()
|
||||||
if git_dir then
|
|
||||||
-- if we're inside of git repo then try to detect current branch
|
|
||||||
local branch = get_git_branch(git_dir)
|
|
||||||
local color
|
|
||||||
if branch then
|
|
||||||
-- Has branch => therefore it is a git folder, now figure out status
|
|
||||||
local gitStatus = get_git_status()
|
|
||||||
local gitConflict = get_git_conflict()
|
|
||||||
|
|
||||||
color = colors.dirty
|
if get_git_status_setting() then
|
||||||
if gitStatus then
|
if git_dir then
|
||||||
color = colors.clean
|
-- if we're inside of git repo then try to detect current branch
|
||||||
end
|
local branch = get_git_branch(git_dir)
|
||||||
|
local color
|
||||||
|
if branch then
|
||||||
|
-- Has branch => therefore it is a git folder, now figure out status
|
||||||
|
local gitStatus = get_git_status()
|
||||||
|
local gitConflict = get_git_conflict()
|
||||||
|
|
||||||
if gitConflict then
|
color = colors.dirty
|
||||||
color = colors.conflict
|
if gitStatus then
|
||||||
end
|
color = colors.clean
|
||||||
|
end
|
||||||
|
|
||||||
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")")
|
if gitConflict then
|
||||||
return false
|
color = colors.conflict
|
||||||
end
|
end
|
||||||
|
|
||||||
|
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- No git present or not in git file
|
-- No git present or not in git file
|
||||||
@ -385,7 +406,24 @@ local function svn_prompt_filter()
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function tilde_match (text, f, l)
|
||||||
|
if text == '~' then
|
||||||
|
clink.add_match(clink.get_env('userprofile'))
|
||||||
|
clink.matches_are_files()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if text:sub(1, 1) == '~' then
|
||||||
|
clink.add_match(string.gsub(text, "~", clink.get_env('userprofile'), 1))
|
||||||
|
-- second match prevents adding a space so we can look for more matches
|
||||||
|
clink.add_match(string.gsub(text, "~", clink.get_env('userprofile'), 1) .. '+')
|
||||||
|
clink.matches_are_files()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- insert the set_prompt at the very beginning so that it runs first
|
-- insert the set_prompt at the very beginning so that it runs first
|
||||||
|
clink.register_match_generator(tilde_match, 1)
|
||||||
clink.prompt.register_filter(set_prompt_filter, 1)
|
clink.prompt.register_filter(set_prompt_filter, 1)
|
||||||
clink.prompt.register_filter(hg_prompt_filter, 50)
|
clink.prompt.register_filter(hg_prompt_filter, 50)
|
||||||
clink.prompt.register_filter(git_prompt_filter, 50)
|
clink.prompt.register_filter(git_prompt_filter, 50)
|
||||||
|
25
vendor/git-prompt.sh
vendored
25
vendor/git-prompt.sh
vendored
@ -1,3 +1,14 @@
|
|||||||
|
function getGitStatusSetting() {
|
||||||
|
gitStatusSetting=$(git --no-pager config -l 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ -n ${gitStatusSetting} ]] && [[ ${gitStatusSetting} =~ cmder.status=false ]] || [[ ${gitStatusSetting} =~ cmder.shstatus=false ]]
|
||||||
|
then
|
||||||
|
echo false
|
||||||
|
else
|
||||||
|
echo true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
if test -f /etc/profile.d/git-sdk.sh
|
if test -f /etc/profile.d/git-sdk.sh
|
||||||
then
|
then
|
||||||
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
|
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
|
||||||
@ -7,7 +18,10 @@ fi
|
|||||||
|
|
||||||
if test -f ~/.config/git/git-prompt.sh
|
if test -f ~/.config/git/git-prompt.sh
|
||||||
then
|
then
|
||||||
. ~/.config/git/git-prompt.sh
|
if [[ $(getGitStatusSetting) == true ]]
|
||||||
|
then
|
||||||
|
. ~/.config/git/git-prompt.sh
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
PS1='\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]' # set window title
|
PS1='\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]' # set window title
|
||||||
# PS1="$PS1"'\n' # new line
|
# PS1="$PS1"'\n' # new line
|
||||||
@ -26,9 +40,12 @@ else
|
|||||||
if test -f "$COMPLETION_PATH/git-prompt.sh"
|
if test -f "$COMPLETION_PATH/git-prompt.sh"
|
||||||
then
|
then
|
||||||
. "$COMPLETION_PATH/git-completion.bash"
|
. "$COMPLETION_PATH/git-completion.bash"
|
||||||
. "$COMPLETION_PATH/git-prompt.sh"
|
if [[ $(getGitStatusSetting) == true ]]
|
||||||
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
then
|
||||||
PS1="$PS1"'`__git_ps1`' # bash function
|
. "$COMPLETION_PATH/git-prompt.sh"
|
||||||
|
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
||||||
|
PS1="$PS1"'`__git_ps1`' # bash function
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
PS1="$PS1"'\[\033[0m\]' # change color
|
PS1="$PS1"'\[\033[0m\]' # change color
|
||||||
|
182
vendor/init.bat
vendored
182
vendor/init.bat
vendored
@ -141,14 +141,14 @@ if "%CMDER_CLINK%" == "1" (
|
|||||||
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings"
|
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings"
|
||||||
echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\
|
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"
|
"%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" --nolog
|
||||||
) else (
|
) else (
|
||||||
if not exist "%CMDER_ROOT%\config\settings" (
|
if not exist "%CMDER_ROOT%\config\settings" (
|
||||||
echo Generating clink initial settings in "%CMDER_ROOT%\config\settings"
|
echo Generating clink initial settings in "%CMDER_ROOT%\config\settings"
|
||||||
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings"
|
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings"
|
||||||
echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup.
|
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"
|
"%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor" --nolog
|
||||||
)
|
)
|
||||||
) else (
|
) else (
|
||||||
%lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!"
|
%lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!"
|
||||||
@ -165,7 +165,6 @@ if not defined TERM set TERM=cygwin
|
|||||||
:: * test if a git is in path and if yes, use that
|
:: * test if a git is in path and if yes, use that
|
||||||
:: * last, use our vendored git
|
:: * last, use our vendored git
|
||||||
:: also check that we have a recent enough version of git by examining the version string
|
:: also check that we have a recent enough version of git by examining the version string
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
if defined GIT_INSTALL_ROOT (
|
if defined GIT_INSTALL_ROOT (
|
||||||
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT
|
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT
|
||||||
) else if "%fast_init%" == "1" (
|
) else if "%fast_init%" == "1" (
|
||||||
@ -184,56 +183,15 @@ if defined GIT_INSTALL_ROOT (
|
|||||||
:: check if git is in path...
|
:: check if git is in path...
|
||||||
for /F "delims=" %%F in ('where git.exe 2^>nul') do (
|
for /F "delims=" %%F in ('where git.exe 2^>nul') do (
|
||||||
:: get the absolute path to the user provided git binary
|
:: get the absolute path to the user provided git binary
|
||||||
pushd %%~dpF
|
call :is_git_shim "%%~dpF"
|
||||||
:: check if there's shim - and if yes follow the path
|
call :get_user_git_version
|
||||||
if exist git.shim (
|
call :compare_git_versions
|
||||||
for /F "tokens=2 delims== " %%I in (git.shim) do (
|
|
||||||
pushd %%~dpI
|
|
||||||
set "test_dir=!CD!"
|
|
||||||
popd
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
set "test_dir=!CD!"
|
|
||||||
)
|
|
||||||
popd
|
|
||||||
|
|
||||||
:: get the version information for the user provided git binary
|
|
||||||
%lib_git% read_version USER "!test_dir!"
|
|
||||||
%lib_git% validate_version USER !GIT_VERSION_USER!
|
|
||||||
|
|
||||||
if !errorlevel! geq 0 (
|
|
||||||
:: compare the user git version against the vendored version
|
|
||||||
%lib_git% compare_versions USER VENDORED
|
|
||||||
|
|
||||||
:: use the user provided git if its version is greater than, or equal to the vendored git
|
|
||||||
if !errorlevel! geq 0 if exist "!test_dir:~0,-4!\cmd\git.exe" (
|
|
||||||
set "GIT_INSTALL_ROOT=!test_dir:~0,-4!"
|
|
||||||
set test_dir=
|
|
||||||
goto :FOUND_GIT
|
|
||||||
) else if !errorlevel! geq 0 (
|
|
||||||
set "GIT_INSTALL_ROOT=!test_dir!"
|
|
||||||
set test_dir=
|
|
||||||
goto :FOUND_GIT
|
|
||||||
) else (
|
|
||||||
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.
|
|
||||||
set test_dir=
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
:: our last hope: our own git...
|
:: our last hope: our own git...
|
||||||
:VENDORED_GIT
|
:VENDORED_GIT
|
||||||
if exist "%CMDER_ROOT%\vendor\git-for-windows" (
|
if exist "%CMDER_ROOT%\vendor\git-for-windows" (
|
||||||
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
|
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
|
||||||
%lib_console% debug_output "Using vendored Git '!GIT_VERSION_VENDORED!' from '!GIT_INSTALL_ROOT!..."
|
|
||||||
goto :CONFIGURE_GIT
|
goto :CONFIGURE_GIT
|
||||||
) else (
|
) else (
|
||||||
goto :NO_GIT
|
goto :NO_GIT
|
||||||
@ -244,48 +202,47 @@ if exist "%CMDER_ROOT%\vendor\git-for-windows" (
|
|||||||
goto :CONFIGURE_GIT
|
goto :CONFIGURE_GIT
|
||||||
|
|
||||||
:FOUND_GIT
|
:FOUND_GIT
|
||||||
%lib_console% debug_output "Using found Git '!GIT_VERSION_USER!' from '%GIT_INSTALL_ROOT%..."
|
%lib_console% debug_output "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..."
|
||||||
goto :CONFIGURE_GIT
|
goto :CONFIGURE_GIT
|
||||||
|
|
||||||
:CONFIGURE_GIT
|
:CONFIGURE_GIT
|
||||||
:: Add git to the path
|
:: Add git to the path
|
||||||
if defined GIT_INSTALL_ROOT (
|
rem add the unix commands at the end to not shadow windows commands like more
|
||||||
rem add the unix commands at the end to not shadow windows commands like more
|
if %nix_tools% equ 1 (
|
||||||
if %nix_tools% equ 1 (
|
%lib_console% debug_output init.bat "Preferring Windows commands"
|
||||||
%lib_console% debug_output init.bat "Preferring Windows commands"
|
set "path_position=append"
|
||||||
set "path_position=append"
|
) else (
|
||||||
) else (
|
%lib_console% debug_output init.bat "Preferring *nix commands"
|
||||||
%lib_console% debug_output init.bat "Preferring *nix commands"
|
set "path_position="
|
||||||
set "path_position="
|
)
|
||||||
)
|
|
||||||
|
|
||||||
if exist "!GIT_INSTALL_ROOT!\cmd\git.exe" %lib_path% enhance_path "!GIT_INSTALL_ROOT!\cmd" !path_position!
|
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" %path_position%
|
||||||
if exist "!GIT_INSTALL_ROOT!\mingw32" (
|
if exist "%GIT_INSTALL_ROOT%\mingw32" (
|
||||||
%lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw32\bin" !path_position!
|
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw32\bin" %path_position%
|
||||||
) else if exist "!GIT_INSTALL_ROOT!\mingw64" (
|
) else if exist "%GIT_INSTALL_ROOT%\mingw64" (
|
||||||
%lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw64\bin" !path_position!
|
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw64\bin" %path_position%
|
||||||
)
|
)
|
||||||
|
|
||||||
if %nix_tools% geq 1 (
|
if %nix_tools% geq 1 (
|
||||||
%lib_path% enhance_path "!GIT_INSTALL_ROOT!\usr\bin" !path_position!
|
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\usr\bin" %path_position%
|
||||||
)
|
)
|
||||||
|
|
||||||
:: define SVN_SSH so we can use git svn with ssh svn repositories
|
:: 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"
|
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
|
||||||
|
|
||||||
if not defined LANG (
|
:: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path.
|
||||||
:: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path.
|
if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\locale.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\locale.exe"
|
||||||
if not defined git_locale if exist "!GIT_INSTALL_ROOT!\usr\bin\locale.exe" set git_locale="!GIT_INSTALL_ROOT!\usr\bin\locale.exe"
|
if not defined git_locale for /F "delims=" %%F in ('where locale.exe 2^>nul') do (if not defined git_locale set git_locale="%%F")
|
||||||
if not defined git_locale for /F "delims=" %%F in ('where locale.exe 2^>nul') do (if not defined git_locale set git_locale="%%F")
|
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
|
||||||
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
|
if not defined git_locale set git_locale=env /usr/bin/locale
|
||||||
if not defined git_locale set git_locale=env /usr/bin/locale
|
|
||||||
for /F "delims=" %%F in ('!git_locale! -uU 2') do (
|
%lib_console% debug_output init.bat "Env Var - git_locale=%git_locale%"
|
||||||
set "LANG=%%F"
|
if not defined LANG (
|
||||||
)
|
for /F "delims=" %%F in ('%git_locale% -uU 2') do (
|
||||||
|
set "LANG=%%F"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
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 "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%"
|
||||||
%lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'"
|
%lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'"
|
||||||
goto :PATH_ENHANCE
|
goto :PATH_ENHANCE
|
||||||
@ -331,22 +288,11 @@ if "%CMDER_ALIASES%" == "1" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
REM Make sure we have a self-extracting user_aliases.cmd file
|
REM Make sure we have a self-extracting user_aliases.cmd file
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
if not exist "%user_aliases%" (
|
if not exist "%user_aliases%" (
|
||||||
echo Creating initial user_aliases store in "%user_aliases%"...
|
echo Creating initial user_aliases store in "%user_aliases%"...
|
||||||
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
|
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
|
||||||
) else (
|
) else (
|
||||||
type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul
|
%lib_base% update_legacy_aliases
|
||||||
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.default" "%user_aliases%"
|
|
||||||
) else (
|
|
||||||
copy "%user_aliases%" "%user_aliases%.old_format"
|
|
||||||
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Update old 'user_aliases' to new self executing 'user_aliases.cmd'
|
:: Update old 'user_aliases' to new self executing 'user_aliases.cmd'
|
||||||
@ -359,7 +305,6 @@ if "%CMDER_ALIASES%" == "1" (
|
|||||||
type "%user_aliases%.old_format" >> "%user_aliases%"
|
type "%user_aliases%.old_format" >> "%user_aliases%"
|
||||||
del "%user_aliases%.old_format"
|
del "%user_aliases%.old_format"
|
||||||
)
|
)
|
||||||
endlocal
|
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Add aliases to the environment
|
:: Add aliases to the environment
|
||||||
@ -422,3 +367,56 @@ if %time_init% gtr 0 (
|
|||||||
"%cmder_root%\vendor\bin\timer.cmd" %CMDER_INIT_START% %CMDER_INIT_END%
|
"%cmder_root%\vendor\bin\timer.cmd" %CMDER_INIT_START% %CMDER_INIT_END%
|
||||||
)
|
)
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
|
:is_git_shim
|
||||||
|
pushd "%~1"
|
||||||
|
:: check if there's shim - and if yes follow the path
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
if exist git.shim (
|
||||||
|
for /F "tokens=2 delims== " %%I in (git.shim) do (
|
||||||
|
pushd %%~dpI
|
||||||
|
set "test_dir=!CD!"
|
||||||
|
popd
|
||||||
|
)
|
||||||
|
) else (
|
||||||
|
set "test_dir=!CD!"
|
||||||
|
)
|
||||||
|
endlocal & set "test_dir=%test_dir%"
|
||||||
|
|
||||||
|
popd
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
:compare_git_versions
|
||||||
|
if %errorlevel% geq 0 (
|
||||||
|
:: compare the user git version against the vendored version
|
||||||
|
%lib_git% compare_versions USER VENDORED
|
||||||
|
|
||||||
|
:: use the user provided git if its version is greater than, or equal to the vendored git
|
||||||
|
if %errorlevel% geq 0 if exist "%test_dir:~0,-4%\cmd\git.exe" (
|
||||||
|
set "GIT_INSTALL_ROOT=%test_dir:~0,-4%"
|
||||||
|
set test_dir=
|
||||||
|
goto :FOUND_GIT
|
||||||
|
) else if %errorlevel% geq 0 (
|
||||||
|
set "GIT_INSTALL_ROOT=%test_dir%"
|
||||||
|
set test_dir=
|
||||||
|
goto :FOUND_GIT
|
||||||
|
) else (
|
||||||
|
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.
|
||||||
|
set test_dir=
|
||||||
|
)
|
||||||
|
)
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
:get_user_git_version
|
||||||
|
|
||||||
|
:: get the version information for the user provided git binary
|
||||||
|
%lib_git% read_version USER "%test_dir%"
|
||||||
|
%lib_git% validate_version USER %GIT_VERSION_USER%
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
27
vendor/lib/lib_base.cmd
vendored
27
vendor/lib/lib_base.cmd
vendored
@ -66,16 +66,29 @@ exit /b
|
|||||||
echo %comspec% | %WINDIR%\System32\find /i "\tccle" > nul && set "CMDER_SHELL=tccle"
|
echo %comspec% | %WINDIR%\System32\find /i "\tccle" > nul && set "CMDER_SHELL=tccle"
|
||||||
|
|
||||||
if not defined CMDER_CLINK (
|
if not defined CMDER_CLINK (
|
||||||
set CMDER_CLINK=1
|
set CMDER_CLINK=1
|
||||||
if "%CMDER_SHELL%" equ "tcc" set CMDER_CLINK=0
|
if "%CMDER_SHELL%" equ "tcc" set CMDER_CLINK=0
|
||||||
if "%CMDER_SHELL%" equ "tccle" set CMDER_CLINK=0
|
if "%CMDER_SHELL%" equ "tccle" set CMDER_CLINK=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if not defined CMDER_ALIASES (
|
if not defined CMDER_ALIASES (
|
||||||
set CMDER_ALIASES=1
|
set CMDER_ALIASES=1
|
||||||
if "%CMDER_SHELL%" equ "tcc" set CMDER_ALIASES=0
|
if "%CMDER_SHELL%" equ "tcc" set CMDER_ALIASES=0
|
||||||
if "%CMDER_SHELL%" equ "tccle" set CMDER_ALIASES=0
|
if "%CMDER_SHELL%" equ "tccle" set CMDER_ALIASES=0
|
||||||
)
|
)
|
||||||
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
|
:update_legacy_aliases
|
||||||
|
type "%user_aliases%" | %WINDIR%\System32\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.default" "%user_aliases%"
|
||||||
|
) else (
|
||||||
|
copy "%user_aliases%" "%user_aliases%.old_format"
|
||||||
|
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
exit /b
|
||||||
|
57
vendor/lib/lib_git.cmd
vendored
57
vendor/lib/lib_git.cmd
vendored
@ -34,7 +34,6 @@ exit /b
|
|||||||
::: GIT_VERSION_[GIT SCOPE] <out> Env variable containing Git semantic version string
|
::: GIT_VERSION_[GIT SCOPE] <out> Env variable containing Git semantic version string
|
||||||
:::-------------------------------------------------------------------------------
|
:::-------------------------------------------------------------------------------
|
||||||
|
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
:: clear the variables
|
:: clear the variables
|
||||||
set GIT_VERSION_%~1=
|
set GIT_VERSION_%~1=
|
||||||
|
|
||||||
@ -49,18 +48,20 @@ exit /b
|
|||||||
)
|
)
|
||||||
|
|
||||||
:: get the git version in the provided directory
|
:: get the git version in the provided directory
|
||||||
for /F "tokens=1,2,3 usebackq" %%A in (`"%git_executable%" --version 2^>nul`) do (
|
|
||||||
|
"%git_executable%" --version > "%temp%\git_version.txt"
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
for /F "tokens=1,2,3 usebackq" %%A in (`type "%temp%\git_version.txt" 2^>nul`) do (
|
||||||
if /i "%%A %%B" == "git version" (
|
if /i "%%A %%B" == "git version" (
|
||||||
set "GIT_VERSION=%%C"
|
set "GIT_VERSION=%%C"
|
||||||
%lib_console% debug_output :read_version "Env Var - GIT_VERSION_%~1=!GIT_VERSION!"
|
|
||||||
) else (
|
) else (
|
||||||
%lib_console% show_error "git --version" returned an inproper version string!
|
echo "'git --version' returned an inproper version string!"
|
||||||
pause
|
pause
|
||||||
exit /b
|
exit /b
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
endlocal & set "GIT_VERSION_%~1=%GIT_VERSION%" & %lib_console% debug_output :read_version "Env Var - GIT_VERSION_%~1=%GIT_VERSION%"
|
||||||
|
|
||||||
endlocal & set "GIT_VERSION_%~1=%GIT_VERSION%"
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
:parse_version
|
:parse_version
|
||||||
@ -89,11 +90,9 @@ exit /b
|
|||||||
:::-------------------------------------------------------------------------------
|
:::-------------------------------------------------------------------------------
|
||||||
|
|
||||||
:: process a `x.x.x.xxxx.x` formatted string
|
:: process a `x.x.x.xxxx.x` formatted string
|
||||||
set "%~1_MAJOR="
|
|
||||||
set "%~1_MINOR="
|
|
||||||
set "%~1_PATCH="
|
|
||||||
set "%~1_BUILD="
|
|
||||||
%lib_console% debug_output :parse_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
%lib_console% debug_output :parse_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
||||||
|
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
for /F "tokens=1-3* delims=.,-" %%A in ("%2") do (
|
for /F "tokens=1-3* delims=.,-" %%A in ("%2") do (
|
||||||
set "%~1_MAJOR=%%A"
|
set "%~1_MAJOR=%%A"
|
||||||
set "%~1_MINOR=%%B"
|
set "%~1_MINOR=%%B"
|
||||||
@ -101,8 +100,17 @@ exit /b
|
|||||||
set "%~1_BUILD=%%D"
|
set "%~1_BUILD=%%D"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
REM endlocal & set "%~1_MAJOR=!%~1_MAJOR!" & set "%~1_MINOR=!%~1_MINOR!" & set "%~1_PATCH=!%~1_PATCH!" & set "%~1_BUILD=!%~1_BUILD!"
|
||||||
|
if "%~1" == "VENDORED" (
|
||||||
|
endlocal & set "%~1_MAJOR=%VENDORED_MAJOR%" & set "%~1_MINOR=%VENDORED_MINOR%" & set "%~1_PATCH=%VENDORED_PATCH%" & set "%~1_BUILD=%VENDORED_BUILD%"
|
||||||
|
) else (
|
||||||
|
endlocal & set "%~1_MAJOR=%USER_MAJOR%" & set "%~1_MINOR=%USER_MINOR%" & set "%~1_PATCH=%USER_PATCH%" & set "%~1_BUILD=%USER_BUILD%"
|
||||||
|
)
|
||||||
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
|
:endlocal_set_git_version
|
||||||
|
|
||||||
:validate_version
|
:validate_version
|
||||||
:::===============================================================================
|
:::===============================================================================
|
||||||
:::validate_version - Validate semantic version string 'x.x.x.x'.
|
:::validate_version - Validate semantic version string 'x.x.x.x'.
|
||||||
@ -123,10 +131,16 @@ exit /b
|
|||||||
|
|
||||||
:: now parse the version information into the corresponding variables
|
:: now parse the version information into the corresponding variables
|
||||||
%lib_console% debug_output :validate_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
%lib_console% debug_output :validate_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
||||||
|
|
||||||
call :parse_version %~1 %~2
|
call :parse_version %~1 %~2
|
||||||
|
|
||||||
:: ... and maybe display it, for debugging purposes.
|
:: ... 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!"
|
REM %lib_console% debug_output :validate_version "Found Git Version for %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!"
|
||||||
|
if "%~1" == "VENDORED" (
|
||||||
|
%lib_console% debug_output :validate_version "Found Git Version for %~1: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD%"
|
||||||
|
) else (
|
||||||
|
%lib_console% debug_output :validate_version "Found Git Version for %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD%"
|
||||||
|
)
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
:compare_versions
|
:compare_versions
|
||||||
@ -151,20 +165,21 @@ exit /b
|
|||||||
:: whichever binary that has the most recent version will be used based on the return code.
|
:: 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 Comparing:
|
||||||
%lib_console% debug_output %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!
|
%lib_console% debug_output %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD%
|
||||||
%lib_console% debug_output %~2: !%~2_MAJOR!.!%~2_MINOR!.!%~2_PATCH!.!%~2_BUILD!
|
%lib_console% debug_output %~2: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD%
|
||||||
|
|
||||||
if !%~1_MAJOR! GTR !%~2_MAJOR! (exit /b 1)
|
setlocal enabledelayedexpansion
|
||||||
if !%~1_MAJOR! LSS !%~2_MAJOR! (exit /b -1)
|
if !%~1_MAJOR! GTR !%~2_MAJOR! (endlocal & exit /b 1)
|
||||||
|
if !%~1_MAJOR! LSS !%~2_MAJOR! (endlocal & exit /b -1)
|
||||||
|
|
||||||
if !%~1_MINOR! GTR !%~2_MINOR! (exit /b 1)
|
if !%~1_MINOR! GTR !%~2_MINOR! (endlocal & exit /b 1)
|
||||||
if !%~1_MINOR! LSS !%~2_MINOR! (exit /b -1)
|
if !%~1_MINOR! LSS !%~2_MINOR! (endlocal & exit /b -1)
|
||||||
|
|
||||||
if !%~1_PATCH! GTR !%~2_PATCH! (exit /b 1)
|
if !%~1_PATCH! GTR !%~2_PATCH! (endlocal & exit /b 1)
|
||||||
if !%~1_PATCH! LSS !%~2_PATCH! (exit /b -1)
|
if !%~1_PATCH! LSS !%~2_PATCH! (endlocal & exit /b -1)
|
||||||
|
|
||||||
if !%~1_BUILD! GTR !%~2_BUILD! (exit /b 1)
|
if !%~1_BUILD! GTR !%~2_BUILD! (endlocal & exit /b 1)
|
||||||
if !%~1_BUILD! LSS !%~2_BUILD! (exit /b -1)
|
if !%~1_BUILD! LSS !%~2_BUILD! (endlocal & exit /b -1)
|
||||||
|
|
||||||
:: looks like we have the same versions.
|
:: looks like we have the same versions.
|
||||||
exit /b 0
|
endlocal & exit /b 0
|
||||||
|
74
vendor/lib/lib_path.cmd
vendored
74
vendor/lib/lib_path.cmd
vendored
@ -38,7 +38,6 @@ exit /b
|
|||||||
::: path <out> Sets the path env variable if required.
|
::: path <out> Sets the path env variable if required.
|
||||||
:::-------------------------------------------------------------------------------
|
:::-------------------------------------------------------------------------------
|
||||||
|
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
if "%~1" neq "" (
|
if "%~1" neq "" (
|
||||||
set "add_path=%~1"
|
set "add_path=%~1"
|
||||||
) else (
|
) else (
|
||||||
@ -58,9 +57,15 @@ exit /b
|
|||||||
) else (
|
) else (
|
||||||
set "PATH=%add_path%;%PATH%"
|
set "PATH=%add_path%;%PATH%"
|
||||||
)
|
)
|
||||||
goto :end_enhance_path
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set "PATH=%PATH:;;=;%"
|
||||||
|
if "%fast_init%" == "1" (
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
rem setlocal enabledelayedexpansion
|
||||||
|
|
||||||
set found=0
|
set found=0
|
||||||
set "find_query=%add_path%"
|
set "find_query=%add_path%"
|
||||||
set "find_query=%find_query:\=\\%"
|
set "find_query=%find_query:\=\\%"
|
||||||
@ -69,20 +74,22 @@ exit /b
|
|||||||
if "%CMDER_CONFIGURED%" == "1" (
|
if "%CMDER_CONFIGURED%" == "1" (
|
||||||
%lib_console% debug_output :enhance_path "Env Var - find_query=%find_query%"
|
%lib_console% debug_output :enhance_path "Env Var - find_query=%find_query%"
|
||||||
echo "%path%"|%WINDIR%\System32\findstr >nul /I /R ";%find_query%\"$"
|
echo "%path%"|%WINDIR%\System32\findstr >nul /I /R ";%find_query%\"$"
|
||||||
if "!ERRORLEVEL!" == "0" set found=1
|
REM if "!ERRORLEVEL!" == "0" set found=1
|
||||||
|
call :set_found
|
||||||
)
|
)
|
||||||
%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" (
|
if "%found%" == "0" (
|
||||||
if "%CMDER_CONFIGURED%" == "1" (
|
if "%CMDER_CONFIGURED%" == "1" (
|
||||||
echo "%path%"|%WINDIR%\System32\findstr >nul /i /r ";%find_query%;"
|
echo "%path%"|%WINDIR%\System32\findstr >nul /i /r ";%find_query%;"
|
||||||
if "!ERRORLEVEL!" == "0" set found=1
|
REM if "!ERRORLEVEL!" == "0" set found=1
|
||||||
|
call :set_found
|
||||||
)
|
)
|
||||||
%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" (
|
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" (
|
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%"
|
set "PATH=%PATH%;%add_path%"
|
||||||
@ -91,11 +98,16 @@ exit /b
|
|||||||
set "PATH=%add_path%;%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%"
|
||||||
)
|
)
|
||||||
|
|
||||||
:end_enhance_path
|
rem :end_enhance_path
|
||||||
endlocal & set "PATH=%PATH:;;=;%"
|
rem endlocal & set "PATH=%PATH:;;=;%"
|
||||||
|
set "PATH=%PATH:;;=;%"
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
:set_found
|
||||||
|
if "!ERRORLEVEL!" == "0" set found=1
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
:enhance_path_recursive
|
:enhance_path_recursive
|
||||||
@ -125,7 +137,6 @@ exit /b
|
|||||||
:::.
|
:::.
|
||||||
::: path <out> Sets the path env variable if required.
|
::: path <out> Sets the path env variable if required.
|
||||||
:::-------------------------------------------------------------------------------
|
:::-------------------------------------------------------------------------------
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
if "%~1" neq "" (
|
if "%~1" neq "" (
|
||||||
set "add_path=%~1"
|
set "add_path=%~1"
|
||||||
) else (
|
) else (
|
||||||
@ -147,28 +158,43 @@ exit /b
|
|||||||
|
|
||||||
if "%fast_init%" == "1" (
|
if "%fast_init%" == "1" (
|
||||||
call :enhance_path "%add_path%" %position%
|
call :enhance_path "%add_path%" %position%
|
||||||
goto :end_enhance_path_recursive
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set "PATH=%PATH:;;=;%"
|
||||||
|
if "%fast_init%" == "1" (
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
rem setlocal enabledelayedexpansion
|
||||||
if "%depth%" == "" set depth=0
|
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 - add_path=%add_path%"
|
||||||
%lib_console% debug_output :enhance_path_recursive "Env Var - position=%position%"
|
%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 - max_depth=%max_depth%"
|
||||||
|
|
||||||
if %max_depth% gtr !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%
|
call :enhance_path "%add_path%" %position%
|
||||||
set /a "depth=!depth!+1"
|
REM set /a "depth=!depth!+1"
|
||||||
|
call :set_depth
|
||||||
for /d %%i in ("%add_path%\*") do (
|
call :loop_depth
|
||||||
%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!"
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
:end_enhance_path_recursive
|
rem :end_enhance_path_recursive
|
||||||
endlocal & set "PATH=%PATH%"
|
rem endlocal & set "PATH=%PATH%"
|
||||||
|
set "PATH=%PATH%"
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
|
: set_depth
|
||||||
|
set /a "depth=%depth%+1"
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
:loop_depth
|
||||||
|
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'"
|
||||||
|
call :enhance_path_recursive "%%~fi" %max_depth% %position%
|
||||||
|
%lib_console% debug_output :enhance_path_recursive "Env Var AFTER- depth=%depth%"
|
||||||
|
)
|
||||||
|
exit /b
|
||||||
|
|
||||||
|
71
vendor/profile.ps1
vendored
71
vendor/profile.ps1
vendored
@ -32,53 +32,13 @@ $moduleInstallerAvailable = [bool](Get-Command -Name 'Install-Module' -ErrorActi
|
|||||||
# Add Cmder modules directory to the autoload path.
|
# Add Cmder modules directory to the autoload path.
|
||||||
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
|
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
|
||||||
|
|
||||||
|
$CmderFunctions = Join-Path $CmderModulePath "Cmder.ps1"
|
||||||
|
. $CmderFunctions
|
||||||
|
|
||||||
if(-not $moduleInstallerAvailable -and -not $env:PSModulePath.Contains($CmderModulePath) ){
|
if(-not $moduleInstallerAvailable -and -not $env:PSModulePath.Contains($CmderModulePath) ){
|
||||||
$env:PSModulePath = $env:PSModulePath.Insert(0, "$CmderModulePath;")
|
$env:PSModulePath = $env:PSModulePath.Insert(0, "$CmderModulePath;")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Configure-Git($GIT_INSTALL_ROOT){
|
|
||||||
$env:Path += $(";" + $GIT_INSTALL_ROOT + "\cmd")
|
|
||||||
|
|
||||||
# Add "$GIT_INSTALL_ROOT\usr\bin" to the path if exists and not done already
|
|
||||||
$GIT_INSTALL_ROOT_ESC=$GIT_INSTALL_ROOT.replace('\','\\')
|
|
||||||
if ((test-path "$GIT_INSTALL_ROOT\usr\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\usr\\bin")) {
|
|
||||||
$env:path = "$env:path;$GIT_INSTALL_ROOT\usr\bin"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add "$GIT_INSTALL_ROOT\mingw[32|64]\bin" to the path if exists and not done already
|
|
||||||
if ((test-path "$GIT_INSTALL_ROOT\mingw32\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\mingw32\\bin")) {
|
|
||||||
$env:path = "$env:path;$GIT_INSTALL_ROOT\mingw32\bin"
|
|
||||||
} elseif ((test-path "$GIT_INSTALL_ROOT\mingw64\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\mingw64\\bin")) {
|
|
||||||
$env:path = "$env:path;$GIT_INSTALL_ROOT\mingw64\bin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$gitLoaded = $false
|
|
||||||
function Import-Git($Loaded){
|
|
||||||
if($Loaded) { return }
|
|
||||||
$GitModule = Get-Module -Name Posh-Git -ListAvailable
|
|
||||||
if($GitModule | select version | where version -le ([version]"0.6.1.20160330")){
|
|
||||||
Import-Module Posh-Git > $null
|
|
||||||
}
|
|
||||||
if(-not ($GitModule) ) {
|
|
||||||
Write-Warning "Missing git support, install posh-git with 'Install-Module posh-git' and restart cmder."
|
|
||||||
}
|
|
||||||
# Make sure we only run once by alawys returning true
|
|
||||||
return $true
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkGit($Path) {
|
|
||||||
if (Test-Path -Path (Join-Path $Path '.git') ) {
|
|
||||||
$gitLoaded = Import-Git $gitLoaded
|
|
||||||
Write-VcsStatus
|
|
||||||
return
|
|
||||||
}
|
|
||||||
$SplitPath = split-path $path
|
|
||||||
if ($SplitPath) {
|
|
||||||
checkGit($SplitPath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
# Check if git is on PATH, i.e. Git already installed on system
|
# Check if git is on PATH, i.e. Git already installed on system
|
||||||
Get-command -Name "git" -ErrorAction Stop >$null
|
Get-command -Name "git" -ErrorAction Stop >$null
|
||||||
@ -96,6 +56,20 @@ if (Get-Module PSReadline -ErrorAction "SilentlyContinue") {
|
|||||||
Set-PSReadlineOption -ExtraPromptLineCount 1
|
Set-PSReadlineOption -ExtraPromptLineCount 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pre assign default prompt hooks so the first run of cmder gets a working prompt.
|
||||||
|
$env:gitLoaded = $false
|
||||||
|
[ScriptBlock]$PrePrompt = {}
|
||||||
|
[ScriptBlock]$PostPrompt = {}
|
||||||
|
[ScriptBlock]$CmderPrompt = {
|
||||||
|
$Host.UI.RawUI.ForegroundColor = "White"
|
||||||
|
Write-Host -NoNewline "$([char]0x200B)"
|
||||||
|
Microsoft.PowerShell.Utility\Write-Host $pwd.ProviderPath -NoNewLine -ForegroundColor Green
|
||||||
|
if (get-command git -erroraction silentlycontinue) {
|
||||||
|
checkGit($pwd.ProviderPath)
|
||||||
|
}
|
||||||
|
Microsoft.PowerShell.Utility\Write-Host "`nλ " -NoNewLine -ForegroundColor "DarkGray"
|
||||||
|
}
|
||||||
|
|
||||||
# Enhance Path
|
# Enhance Path
|
||||||
$env:Path = "$Env:CMDER_ROOT\bin;$Env:CMDER_ROOT\vendor\bin;$env:Path;$Env:CMDER_ROOT"
|
$env:Path = "$Env:CMDER_ROOT\bin;$Env:CMDER_ROOT\vendor\bin;$env:Path;$Env:CMDER_ROOT"
|
||||||
|
|
||||||
@ -172,16 +146,6 @@ if (! (Test-Path $CmderUserProfilePath) ) {
|
|||||||
# This allows users to configure the prompt in their user_profile.ps1 or config\profile.d\*.ps1
|
# This allows users to configure the prompt in their user_profile.ps1 or config\profile.d\*.ps1
|
||||||
if ( $(get-command prompt).Definition -match 'PS \$\(\$executionContext.SessionState.Path.CurrentLocation\)\$\(' -and `
|
if ( $(get-command prompt).Definition -match 'PS \$\(\$executionContext.SessionState.Path.CurrentLocation\)\$\(' -and `
|
||||||
$(get-command prompt).Definition -match '\(\$nestedPromptLevel \+ 1\)\) ";') {
|
$(get-command prompt).Definition -match '\(\$nestedPromptLevel \+ 1\)\) ";') {
|
||||||
# Pre assign the hooks so the first run of cmder gets a working prompt.
|
|
||||||
[ScriptBlock]$PrePrompt = {}
|
|
||||||
[ScriptBlock]$PostPrompt = {}
|
|
||||||
[ScriptBlock]$CmderPrompt = {
|
|
||||||
$Host.UI.RawUI.ForegroundColor = "White"
|
|
||||||
Microsoft.PowerShell.Utility\Write-Host $pwd.ProviderPath -NoNewLine -ForegroundColor Green
|
|
||||||
if (get-command git -erroraction silentlycontinue) {
|
|
||||||
checkGit($pwd.ProviderPath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
<#
|
||||||
This scriptblock runs every time the prompt is returned.
|
This scriptblock runs every time the prompt is returned.
|
||||||
@ -193,7 +157,6 @@ if ( $(get-command prompt).Definition -match 'PS \$\(\$executionContext.SessionS
|
|||||||
$host.UI.RawUI.WindowTitle = Microsoft.PowerShell.Management\Split-Path $pwd.ProviderPath -Leaf
|
$host.UI.RawUI.WindowTitle = Microsoft.PowerShell.Management\Split-Path $pwd.ProviderPath -Leaf
|
||||||
PrePrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
PrePrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
||||||
CmderPrompt
|
CmderPrompt
|
||||||
Microsoft.PowerShell.Utility\Write-Host "`nλ " -NoNewLine -ForegroundColor "DarkGray"
|
|
||||||
PostPrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
PostPrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
||||||
$global:LASTEXITCODE = $realLASTEXITCODE
|
$global:LASTEXITCODE = $realLASTEXITCODE
|
||||||
return " "
|
return " "
|
||||||
|
59
vendor/psmodules/Cmder.ps1
vendored
Normal file
59
vendor/psmodules/Cmder.ps1
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
function Configure-Git($GIT_INSTALL_ROOT){
|
||||||
|
$env:Path += $(";" + $GIT_INSTALL_ROOT + "\cmd")
|
||||||
|
|
||||||
|
# Add "$GIT_INSTALL_ROOT\usr\bin" to the path if exists and not done already
|
||||||
|
$GIT_INSTALL_ROOT_ESC=$GIT_INSTALL_ROOT.replace('\','\\')
|
||||||
|
if ((test-path "$GIT_INSTALL_ROOT\usr\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\usr\\bin")) {
|
||||||
|
$env:path = "$env:path;$GIT_INSTALL_ROOT\usr\bin"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add "$GIT_INSTALL_ROOT\mingw[32|64]\bin" to the path if exists and not done already
|
||||||
|
if ((test-path "$GIT_INSTALL_ROOT\mingw32\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\mingw32\\bin")) {
|
||||||
|
$env:path = "$env:path;$GIT_INSTALL_ROOT\mingw32\bin"
|
||||||
|
} elseif ((test-path "$GIT_INSTALL_ROOT\mingw64\bin") -and -not ($env:path -match "$GIT_INSTALL_ROOT_ESC\\mingw64\\bin")) {
|
||||||
|
$env:path = "$env:path;$GIT_INSTALL_ROOT\mingw64\bin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Import-Git(){
|
||||||
|
|
||||||
|
$GitModule = Get-Module -Name Posh-Git -ListAvailable
|
||||||
|
if($GitModule | select version | where version -le ([version]"0.6.1.20160330")){
|
||||||
|
Import-Module Posh-Git > $null
|
||||||
|
}
|
||||||
|
if(-not ($GitModule) ) {
|
||||||
|
Write-Warning "Missing git support, install posh-git with 'Install-Module posh-git' and restart cmder."
|
||||||
|
}
|
||||||
|
# Make sure we only run once by alawys returning true
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkGit($Path) {
|
||||||
|
if (Test-Path -Path (Join-Path $Path '.git') ) {
|
||||||
|
if($env:gitLoaded -eq 'false') {
|
||||||
|
$env:gitLoaded = Import-Git
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getGitStatusSetting -eq $true) {
|
||||||
|
Write-VcsStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$SplitPath = split-path $path
|
||||||
|
if ($SplitPath) {
|
||||||
|
checkGit($SplitPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGitStatusSetting() {
|
||||||
|
$gitStatus = (git --no-pager config -l) | out-string
|
||||||
|
|
||||||
|
ForEach ($line in $($gitStatus -split "`r`n")) {
|
||||||
|
if ($line -match 'cmder.status=false' -or $line -match 'cmder.psstatus=false') {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $true
|
||||||
|
}
|
12
vendor/sources.json
vendored
12
vendor/sources.json
vendored
@ -1,8 +1,8 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "git-for-windows",
|
"name": "git-for-windows",
|
||||||
"version": "v2.21.0.windows.1",
|
"version": "v2.23.0.windows.1",
|
||||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/PortableGit-2.21.0-64-bit.7z.exe"
|
"url": "https://github.com/git-for-windows/git/releases/download/v2.23.0.windows.1/PortableGit-2.23.0-64-bit.7z.exe"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "clink",
|
"name": "clink",
|
||||||
@ -11,12 +11,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "conemu-maximus5",
|
"name": "conemu-maximus5",
|
||||||
"version": "180626",
|
"version": "191012",
|
||||||
"url": "https://github.com/Maximus5/ConEmu/releases/download/v18.06.26/ConEmuPack.180626.7z"
|
"url": "https://github.com/Maximus5/ConEmu/releases/download/v19.10.12/ConEmuPack.191012.7z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "clink-completions",
|
"name": "clink-completions",
|
||||||
"version": "0.3.3",
|
"version": "0.3.4",
|
||||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.3.3.zip"
|
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.3.4.zip"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user