mirror of
https://github.com/cmderdev/cmder.git
synced 2025-07-17 04:59:09 +08:00
Compare commits
56 Commits
Author | SHA1 | Date | |
---|---|---|---|
d6b54eec24 | |||
052ab118e2 | |||
c46eb6a525 | |||
48259b87ac | |||
2a26026749 | |||
d68816bd11 | |||
419c785db5 | |||
c15e3f4ebd | |||
1f75f85b7c | |||
4203a8a4ea | |||
cf8a992e37 | |||
cec7fa3398 | |||
83c685cdc7 | |||
24fd027cda | |||
df259195ab | |||
20b8b09419 | |||
7bc71010c2 | |||
6608e16c3b | |||
d979140bb5 | |||
568e2cfcdd | |||
36291ab789 | |||
73c8c0c233 | |||
32cd7dcb58 | |||
b40b0067c0 | |||
4edec1675a | |||
4ed35fe110 | |||
583109b695 | |||
f783cd8add | |||
6952d602d2 | |||
eec3fd5578 | |||
7c907a5174 | |||
30f7847852 | |||
801a4ac901 | |||
143e659187 | |||
7fd43b939b | |||
5ce077a74a | |||
fc85915b2c | |||
373a58e1e6 | |||
3e06fcbf07 | |||
ecbf7a01d1 | |||
dc9263a11c | |||
8659b9c6ed | |||
316a42b8f9 | |||
676297c0d4 | |||
70b0615b34 | |||
2a1a736ceb | |||
40fd96b135 | |||
271b3ea876 | |||
c4873c6e58 | |||
29d1378d7a | |||
c15e29ecb3 | |||
c38f6b3a89 | |||
99ea376713 | |||
2051078cc6 | |||
6c5034164c | |||
0311e129ca |
2
.gitignore
vendored
2
.gitignore
vendored
@ -8,5 +8,7 @@ vendor/*/*
|
||||
config/.history
|
||||
Thumbs.db
|
||||
*.exe
|
||||
*.dll
|
||||
build/
|
||||
Version v*
|
||||
*.bak
|
||||
|
49
README.md
49
README.md
@ -1,29 +1,25 @@
|
||||
# Cmder
|
||||
|
||||
[](https://gitter.im/bliker/cmder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://gitter.im/cmderdev/cmder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
||||
Latest release is **[v1.1.4.1](https://github.com/bliker/cmder/releases/tag/v1.1.4.1)**
|
||||
|
||||
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://code.google.com/p/conemu-maximus5/) with *major* config overhaul. Monokai color scheme, amazing [clink](https://github.com/mridgers/clink) and custom prompt layout.
|
||||
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://conemu.github.io/) with *major* config overhaul, adds a Monokai color scheme, integrates amazing [clink](https://github.com/mridgers/clink) and a custom prompt layout.
|
||||
|
||||

|
||||
|
||||
## Why use it
|
||||
|
||||
The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, that is makes it great for **USB Sticks** or **Dropbox**. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.
|
||||
The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, that is makes it great for **USB Sticks** or **cloud storage**. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Download the latest release
|
||||
1. Extract
|
||||
1. (optional) Place your own executable files into the `bin` folder to be injected into your PATH.
|
||||
1. Run cmder
|
||||
|
||||
*(There will be a version with installer)*
|
||||
1. Download the [latest release](https://github.com/cmderdev/cmder/releases/)
|
||||
2. Extract
|
||||
3. (optional) Place your own executable files into the `bin` folder to be injected into your PATH.
|
||||
4. Run Cmder
|
||||
|
||||
## Integration
|
||||
|
||||
So you've experimented with cmder a little and want to give it a shot in a more permanent home;
|
||||
So you've experimented with Cmder a little and want to give it a shot in a more permanent home;
|
||||
|
||||
### Shortcut to open Cmder in a chosen folder
|
||||
|
||||
@ -38,18 +34,18 @@ In a file explorer window right click in or on a directory to see "Cmder Here" i
|
||||
|
||||
### Tab manipulation
|
||||
|
||||
* `Ctrl + t` : new tab dialog (maybe you want to open cmd as admin?)
|
||||
* `Ctrl + w` : close tab
|
||||
* `Ctrl + d` : close tab (if pressed on empty command)
|
||||
* `Shift + alt + number` : fast new tab: `1` - CMD, `2` - Powershell `*` - More to come
|
||||
* `Alt + enter`: Fullscreen
|
||||
* <kbd>Ctrl</kbd> + <kbd>T</kbd> : New tab dialog (maybe you want to open cmd as admin?)
|
||||
* <kbd>Ctrl</kbd> + <kbd>W</kbd> : Close tab
|
||||
* <kbd>Ctrl</kbd> + <kbd>D</kbd> : Close tab (if pressed on empty command)
|
||||
* <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>#Number</kbd> : Fast new tab: <kbd>1</kbd> - CMD, <kbd>2</kbd> - PowerShell
|
||||
* <kbd>Alt</kbd> + <kbd>Enter</kbd>: Fullscreen
|
||||
|
||||
### Shell
|
||||
|
||||
* `Shift + Up` : Traverse up in directory structure (lovely feature!)
|
||||
* `End, Home, Ctrl` : Traversing text with as usual on Windows
|
||||
* `Ctrl + r` : History search
|
||||
* `Shift + mouse` : Select and copy text from buffer
|
||||
* <kbd>Shift</kbd> + <kbd>Up</kbd> : Traverse up in directory structure (lovely feature!)
|
||||
* <kbd>End</kbd>, <kbd>Home</kbd>, <kbd>Ctrl</kbd> : Traversing text with as usual on Windows
|
||||
* <kbd>Ctrl</kbd> + <kbd>R</kbd> : History search
|
||||
* <kbd>Shift</kbd> + Mouse : Select and copy text from buffer
|
||||
|
||||
(Some shortcuts are not yet documented, thought they exist, please add them here)
|
||||
|
||||
@ -64,17 +60,14 @@ All aliases will be saved in `/config/aliases` file
|
||||
|
||||
### SSH Agent
|
||||
|
||||
To start SSH agent simply call `agent`, which is in the `bin` folder.
|
||||
To start 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, uncomment the line in `/vendor/init.bat`so it says `@call "%CMDER_ROOT%/bin/agent.cmd"`.
|
||||
If you want to run SSH agent on startup, include the line `@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"` in `/config/user-startup.bat` (usually just uncomment it).
|
||||
|
||||
## Todo
|
||||
|
||||
1. Complete PowerShell compatibility.
|
||||
2. Workaround git.exe overload after msysgit download (Granted this is an upstream issue).
|
||||
3. Redo Build/Pack scripts or remove them altogether.
|
||||
4. Git Bash
|
||||
5. Check for clink and git before injecting them
|
||||
1. Git Bash
|
||||
2. Check for clink and git before injecting them (Sort of done)
|
||||
|
||||
## License
|
||||
|
||||
|
@ -1,46 +0,0 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM Set default sock file
|
||||
SET SSH_AUTH_SOCK=/tmp/ssh-agent.sock
|
||||
|
||||
REM Check socket is available
|
||||
IF NOT EXIST "%TMP%\ssh-agent.sock" GOTO:RUNAGENT
|
||||
|
||||
REM Check if an ssh-agent is running
|
||||
FOR /f "tokens=*" %%I IN ('ps ^| grep ssh-agent ^| sed "s/^ *\([0-9]\+\) .*/\1/"') DO SET VAR=%%I
|
||||
IF "%VAR%" == "" GOTO:RUNAGENT
|
||||
|
||||
REM Check if socket file is valid
|
||||
ssh-add -l 1> NUL 2>&1
|
||||
IF ERRORLEVEL 1 GOTO:RUNAGENT
|
||||
GOTO:ADDKEYS
|
||||
|
||||
:RUNAGENT
|
||||
REM Remove old socket file
|
||||
rm -f /tmp/ssh-agent.sock
|
||||
|
||||
REM Run ssh-agent and save (last) PID in VAR
|
||||
SET VAR=
|
||||
FOR /f "tokens=*" %%J IN ('ssh-agent -a /tmp/ssh-agent.sock') DO FOR /f "tokens=*" %%K IN ('echo %%J ^| grep "SSH_AGENT_PID" ^| sed "s/^SSH_AGENT_PID=\([0-9]\+\); .*/\1/"') DO SET VAR=%%K
|
||||
|
||||
:ADDKEYS
|
||||
SET SSH_AUTH_PID=%VAR%
|
||||
|
||||
REM Check if ssh keys are known
|
||||
SET KEYS=
|
||||
FOR /f "tokens=*" %%I IN ('DIR /B "%HOME%\.ssh\*_rsa"') DO CALL:CHECKKEY %%I
|
||||
|
||||
REM Add missing ssh keys at once
|
||||
IF NOT "%KEYS%" == "" ssh-add %KEYS%
|
||||
GOTO:END
|
||||
|
||||
REM Functions
|
||||
REM Check if ssh key has to be added
|
||||
:CHECKKEY
|
||||
SET VAR=
|
||||
FOR /f "tokens=*" %%J IN ('ssh-add -l ^| grep "%1"') DO SET VAR=%%J
|
||||
IF "%VAR%" == "" SET KEYS='%HOME%\.ssh\%1' %KEYS%
|
||||
GOTO:EOF
|
||||
|
||||
:END
|
||||
@ECHO ON
|
@ -1,8 +1,13 @@
|
||||
@echo off
|
||||
|
||||
set ALIASES=%CMDER_ROOT%\config\aliases
|
||||
setlocal
|
||||
:: handle quotes within command definition, e.g. quoted long file names
|
||||
set _x="%*"
|
||||
set _x=%_x:"=%
|
||||
|
||||
if ["%*"] == [""] echo Use /? for help & echo. & goto :p_show
|
||||
:: check command usage
|
||||
if ["%_x%"] == [""] echo Use /? for help & echo. & goto :p_show
|
||||
if ["%1"] == ["/?"] goto:p_help
|
||||
if ["%1"] == ["/reload"] goto:p_reload
|
||||
:: /d flag for delete existing alias
|
||||
@ -13,20 +18,18 @@ if ["%2"] == [""] (
|
||||
echo Insufficient parameters. & goto:p_help
|
||||
)
|
||||
|
||||
::validate alias
|
||||
setlocal
|
||||
for /f "delims== tokens=1" %%G in ("%*") do set _temp2=%%G
|
||||
:: validate alias
|
||||
for /f "delims== tokens=1" %%G in ("%_x%") do set alias=%%G
|
||||
set _temp=%alias: =%
|
||||
|
||||
set _temp=%_temp2: =%
|
||||
|
||||
if not ["%_temp%"] == ["%_temp2%"] (
|
||||
if not ["%_temp%"] == ["%alias%"] (
|
||||
echo Your alias name can not contain a space
|
||||
endlocal
|
||||
goto:eof
|
||||
)
|
||||
|
||||
:: replace already defined alias
|
||||
findstr /b /v /i "%_temp%=" "%ALIASES%" >> "%ALIASES%.tmp"
|
||||
findstr /b /v /i "%alias%=" "%ALIASES%" >> "%ALIASES%.tmp"
|
||||
echo %* >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
|
||||
doskey /macrofile="%ALIASES%"
|
||||
endlocal
|
||||
|
@ -72,12 +72,12 @@
|
||||
<value name="StartType" type="hex" data="02"/>
|
||||
<value name="CmdLine" type="string" data=""/>
|
||||
<value name="StartTasksFile" type="string" data=""/>
|
||||
<value name="StartTasksName" type="string" data="{PowerShell}"/>
|
||||
<value name="StartTasksName" type="string" data="{cmd}"/>
|
||||
<value name="StartFarFolders" type="hex" data="00"/>
|
||||
<value name="StartFarEditors" type="hex" data="00"/>
|
||||
<value name="StoreTaskbarkTasks" type="hex" data="00"/>
|
||||
<value name="StoreTaskbarCommands" type="hex" data="00"/>
|
||||
<value name="CmdLineHistory" type="multi"><line data=";C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\"/></value>
|
||||
<value name="CmdLineHistory" type="multi"></value>
|
||||
<value name="SingleInstance" type="hex" data="00"/>
|
||||
<value name="ShowHelpTooltips" type="hex" data="01"/>
|
||||
<value name="Multi" type="hex" data="01"/>
|
||||
@ -497,7 +497,7 @@
|
||||
<key name="Task2" modified="2015-05-17 22:10:27" build="150513">
|
||||
<value name="Name" type="string" data="{PowerShell}"/>
|
||||
<value name="GuiArgs" type="string" data="/icon "%CMDER_ROOT%\cmder.exe""/>
|
||||
<value name="Cmd1" type="string" data="PowerShell -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''" -new_console:d:"%USERPROFILE%""/>
|
||||
<value name="Cmd1" type="string" data="PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''" -new_console:d:"%USERPROFILE%""/>
|
||||
<value name="Active" type="dword" data="00000000"/>
|
||||
<value name="Count" type="dword" data="00000001"/>
|
||||
<value name="Hotkey" type="dword" data="00000000"/>
|
||||
@ -507,7 +507,7 @@
|
||||
<value name="Name" type="string" data="{PowerShell as Admin}"/>
|
||||
<value name="Hotkey" type="dword" data="00000000"/>
|
||||
<value name="GuiArgs" type="string" data="/icon "%CMDER_ROOT%\cmder.exe""/>
|
||||
<value name="Cmd1" type="string" data="*PowerShell -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''" -new_console:d:"%USERPROFILE%""/>
|
||||
<value name="Cmd1" type="string" data="*PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''" -new_console:d:"%USERPROFILE%""/>
|
||||
<value name="Active" type="dword" data="00000000"/>
|
||||
<value name="Count" type="dword" data="00000001"/>
|
||||
<value name="Flags" type="dword" data="00000000"/>
|
||||
@ -516,8 +516,8 @@
|
||||
<value name="Name" type="string" data="{git sh}"/>
|
||||
<value name="Hotkey" type="dword" data="00000000"/>
|
||||
<value name="GuiArgs" type="string" data=" /icon "%CMDER_ROOT%\cmder.exe""/>
|
||||
<value name="Cmd1" type="string" data="cmd /k "%ConEmuDir%\..\init.bat & %CMDER_ROOT%\vendor\msysgit\bin\bash --login -i" -new_console:d:%USERPROFILE%"/>
|
||||
<value name="Cmd2" type="string" data="%CMDER_ROOT%\vendor\msysgit\git-bash.bat"/>
|
||||
<value name="Cmd1" type="string" data="cmd /k "%ConEmuDir%\..\init.bat & %CMDER_ROOT%\vendor\git-for-windows\bin\bash --login -i" -new_console:d:%USERPROFILE%"/>
|
||||
<value name="Cmd2" type="string" data="%CMDER_ROOT%\vendor\git-for-windows\git-bash.exe"/>
|
||||
<value name="Active" type="dword" data="00000000"/>
|
||||
<value name="Count" type="dword" data="00000001"/>
|
||||
</key>
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.22823.1
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmderLauncher", "CmderLauncher.vcxproj", "{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}"
|
||||
EndProject
|
||||
|
@ -14,7 +14,6 @@
|
||||
<ProjectGuid>{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>CmderLauncher</RootNamespace>
|
||||
<TargetPlatformVersion>8.1</TargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
@ -73,6 +72,7 @@
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -85,7 +85,9 @@
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="src\Resource.rc" />
|
||||
<ResourceCompile Include="src\Resource.rc">
|
||||
<FileType>RC</FileType>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\resource.h" />
|
||||
|
@ -79,6 +79,19 @@ optpair GetOption()
|
||||
return pair;
|
||||
}
|
||||
|
||||
bool FileExists(const wchar_t * filePath)
|
||||
{
|
||||
HANDLE hFile = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
|
||||
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void StartCmder(std::wstring path, bool is_single_mode)
|
||||
{
|
||||
#if USE_TASKBAR_API
|
||||
@ -87,6 +100,7 @@ void StartCmder(std::wstring path, bool is_single_mode)
|
||||
wchar_t exeDir[MAX_PATH] = { 0 };
|
||||
wchar_t icoPath[MAX_PATH] = { 0 };
|
||||
wchar_t cfgPath[MAX_PATH] = { 0 };
|
||||
wchar_t oldCfgPath[MAX_PATH] = { 0 };
|
||||
wchar_t conEmuPath[MAX_PATH] = { 0 };
|
||||
wchar_t args[MAX_PATH * 2 + 256] = { 0 };
|
||||
|
||||
@ -99,16 +113,29 @@ void StartCmder(std::wstring path, bool is_single_mode)
|
||||
PathRemoveFileSpec(exeDir);
|
||||
|
||||
PathCombine(icoPath, exeDir, L"icons\\cmder.ico");
|
||||
PathCombine(cfgPath, exeDir, L"config\\ConEmu.xml");
|
||||
PathCombine(oldCfgPath, exeDir, L"config\\ConEmu.xml");
|
||||
PathCombine(cfgPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.xml");
|
||||
PathCombine(conEmuPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.exe");
|
||||
|
||||
if (FileExists(oldCfgPath) && !FileExists(cfgPath))
|
||||
{
|
||||
if (!CopyFile(oldCfgPath, cfgPath, FALSE))
|
||||
{
|
||||
MessageBox(NULL,
|
||||
(GetLastError() == ERROR_ACCESS_DENIED)
|
||||
? L"Failed to copy ConEmu.xml file to new location! Restart cmder as administrator."
|
||||
: L"Failed to copy ConEmu.xml file to new location!", MB_TITLE, MB_ICONSTOP);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (is_single_mode)
|
||||
{
|
||||
swprintf_s(args, L"/single /Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath);
|
||||
swprintf_s(args, L"/single /Icon \"%s\" /Title Cmder", icoPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
swprintf_s(args, L"/Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath);
|
||||
swprintf_s(args, L"/Icon \"%s\" /Title Cmder", icoPath);
|
||||
}
|
||||
|
||||
SetEnvironmentVariable(L"CMDER_ROOT", exeDir);
|
||||
|
@ -11,11 +11,11 @@
|
||||
.EXAMPLE
|
||||
.\build.ps1
|
||||
|
||||
Executes the default build for cmder; Conemu, clink. This is equivalent to the "minimum" style package in the releases
|
||||
Executes the default build for Cmder; Conemu, clink. This is equivalent to the "minimum" style package in the releases
|
||||
.EXAMPLE
|
||||
.\build.ps1 -Full
|
||||
|
||||
Executes a full build for cmder, including git. This is equivalent to the "full" style package in the releases
|
||||
Executes a full build for Cmder, including git. This is equivalent to the "full" style package in the releases
|
||||
.EXAMPLE
|
||||
.\build -verbose
|
||||
|
||||
@ -46,6 +46,9 @@ Param(
|
||||
# Launcher folder location
|
||||
[string]$launcher = "..\launcher",
|
||||
|
||||
# Config folder location
|
||||
[string]$config = "..\config",
|
||||
|
||||
# Include git with the package build
|
||||
[switch]$Full
|
||||
)
|
||||
@ -61,8 +64,19 @@ Ensure-Exists $sourcesPath
|
||||
Ensure-Executable "7z"
|
||||
New-Item -Type Directory -Path (Join-Path $saveTo "/tmp/") -ErrorAction SilentlyContinue >$null
|
||||
|
||||
# Preserve modified (by user) ConEmu setting file
|
||||
if ($config -ne "") {
|
||||
$ConEmuXml = Join-Path $saveTo "conemu-maximus5\ConEmu.xml"
|
||||
if (Test-Path $ConEmuXml -pathType leaf) {
|
||||
$ConEmuXmlSave = Join-Path $config "ConEmu.xml"
|
||||
Write-Verbose "Backup '$ConEmuXml' to '$ConEmuXmlSave'"
|
||||
Copy-Item $ConEmuXml $ConEmuXmlSave
|
||||
} else { $ConEmuXml = "" }
|
||||
} else { $ConEmuXml = "" }
|
||||
|
||||
|
||||
foreach ($s in $sources) {
|
||||
if($Full -eq $false -and $s.name -eq "msysgit"){
|
||||
if($Full -eq $false -and $s.name -eq "git-for-windows"){
|
||||
Continue
|
||||
}
|
||||
|
||||
@ -83,6 +97,12 @@ foreach ($s in $sources) {
|
||||
"$($s.version)" | Out-File "$($s.name)/.cmderver"
|
||||
}
|
||||
|
||||
# Restore user configuration
|
||||
if ($ConEmuXml -ne "") {
|
||||
Write-Verbose "Restore '$ConEmuXmlSave' to '$ConEmuXml'"
|
||||
Copy-Item $ConEmuXmlSave $ConEmuXml
|
||||
}
|
||||
|
||||
Pop-Location
|
||||
|
||||
Push-Location -Path $launcher
|
||||
|
@ -42,11 +42,10 @@ Ensure-Executable "7z"
|
||||
$targets = @{
|
||||
"cmder.zip" = $null;
|
||||
"cmder.7z" = $null;
|
||||
"cmder_mini.zip" = "-x!`"vendor\msysgit`"";
|
||||
"cmder_mini.zip" = "-x!`"vendor\git-for-windows`"";
|
||||
}
|
||||
|
||||
Delete-Existing "..\Version*"
|
||||
Cleanup-Git
|
||||
|
||||
$version = Invoke-Expression "git describe --abbrev=0 --tags"
|
||||
(New-Item -ItemType file "$cmderRoot\Version $version") | Out-Null
|
||||
|
@ -61,11 +61,6 @@ function Digest-MD5 ($path) {
|
||||
return Invoke-Expression "md5sum $path"
|
||||
}
|
||||
|
||||
function Cleanup-Git () {
|
||||
$gitdir = '/vendor/msysgit/libexec/git-core/'
|
||||
Get-Childitem $gitdir -Exclude git.exe | Where-Object{!($_.PSIsContainer)} | Foreach-Object { Remove-Item $_.FullName }
|
||||
}
|
||||
|
||||
function Register-Cmder(){
|
||||
[CmdletBinding()]
|
||||
Param
|
||||
|
24
vendor/init.bat
vendored
24
vendor/init.bat
vendored
@ -2,6 +2,9 @@
|
||||
:: Sets some nice defaults
|
||||
:: Created as part of cmder project
|
||||
|
||||
:: !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
|
||||
:: !!! Use "%CMDER_ROOT%\config\user-startup.cmd" to add your own startup commands
|
||||
|
||||
:: Find root dir
|
||||
@if not defined CMDER_ROOT (
|
||||
for /f "delims=" %%i in ("%ConEmuDir%\..\..") do @set CMDER_ROOT=%%~fi
|
||||
@ -21,7 +24,7 @@
|
||||
:: Run clink
|
||||
@"%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config"
|
||||
|
||||
:: Prepare for msysgit
|
||||
:: Prepare for git-for-windows
|
||||
|
||||
:: I do not even know, copypasted from their .bat
|
||||
@set PLINK_PROTOCOL=ssh
|
||||
@ -33,12 +36,12 @@
|
||||
) else if exist "%ProgramFiles(x86)%\Git" (
|
||||
set "GIT_INSTALL_ROOT=%ProgramFiles(x86)%\Git"
|
||||
) else if exist "%CMDER_ROOT%\vendor" (
|
||||
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\msysgit"
|
||||
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
|
||||
)
|
||||
|
||||
:: Add git to the path
|
||||
@if defined GIT_INSTALL_ROOT (
|
||||
set "PATH=%GIT_INSTALL_ROOT%\bin;%GIT_INSTALL_ROOT%\share\vim\vim74;%PATH%"
|
||||
set "PATH=%GIT_INSTALL_ROOT%\bin;%GIT_INSTALL_ROOT%\usr\bin;%GIT_INSTALL_ROOT%\share\vim\vim74;%PATH%"
|
||||
:: 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"
|
||||
)
|
||||
@ -60,4 +63,17 @@
|
||||
)
|
||||
)
|
||||
|
||||
:: @call "%CMDER_ROOT%/bin/agent.cmd"
|
||||
@if exist "%CMDER_ROOT%\config\user-startup.cmd" (
|
||||
@rem create this file and place your own command in there
|
||||
call "%CMDER_ROOT%\config\user-startup.cmd"
|
||||
) else (
|
||||
@echo Creating user startup file: "%CMDER_ROOT%\config\user-startup.cmd"
|
||||
(
|
||||
@echo :: use this file to run your own startup commands
|
||||
@echo :: use @ in front of the command to prevent printing the command
|
||||
@echo.
|
||||
@echo :: @call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd
|
||||
@echo :: @set PATH=%%CMDER_ROOT%%\vendor\whatever;%%PATH%%
|
||||
@echo.
|
||||
) > "%CMDER_ROOT%\config\user-startup.cmd"
|
||||
)
|
||||
|
17
vendor/profile.ps1
vendored
17
vendor/profile.ps1
vendored
@ -1,4 +1,9 @@
|
||||
# Add Cmder modules directory to the autoload path.
|
||||
# Compatibility with PS major versions <= 2
|
||||
if(!$PSScriptRoot) {
|
||||
$PSScriptRoot = Split-Path $Script:MyInvocation.MyCommand.Path
|
||||
}
|
||||
|
||||
# Add Cmder modules directory to the autoload path.
|
||||
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
|
||||
|
||||
if( -not $env:PSModulePath.Contains($CmderModulePath) ){
|
||||
@ -6,7 +11,13 @@ if( -not $env:PSModulePath.Contains($CmderModulePath) ){
|
||||
}
|
||||
|
||||
try {
|
||||
# Check if git is on PATH, i.e. Git already installed on system
|
||||
Get-command -Name "git" -ErrorAction Stop >$null
|
||||
} catch {
|
||||
$env:Path += ";$env:CMDER_ROOT\vendor\git-for-windows\bin"
|
||||
}
|
||||
|
||||
try {
|
||||
Import-Module -Name "posh-git" -ErrorAction Stop >$null
|
||||
$gitStatus = $true
|
||||
} catch {
|
||||
@ -40,7 +51,6 @@ function global:prompt {
|
||||
|
||||
# Load special features come from posh-git
|
||||
if ($gitStatus) {
|
||||
Enable-GitColors
|
||||
Start-SshAgent -Quiet
|
||||
}
|
||||
|
||||
@ -50,3 +60,6 @@ if (Test-Path Env:\CMDER_START) {
|
||||
} elseif ($Env:CMDER_ROOT -and $Env:CMDER_ROOT.StartsWith($pwd)) {
|
||||
Set-Location -Path $Env:USERPROFILE
|
||||
}
|
||||
|
||||
# Enhance Path
|
||||
$env:Path = "$Env:CMDER_ROOT\bin;$env:Path;$Env:CMDER_ROOT"
|
18
vendor/sources.json
vendored
18
vendor/sources.json
vendored
@ -1,22 +1,22 @@
|
||||
[
|
||||
{
|
||||
"name": "msysgit",
|
||||
"version": "1.9.5-preview20150319",
|
||||
"url": "https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z"
|
||||
"name": "git-for-windows",
|
||||
"version": "v2.6.1.windows.1",
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.6.1.windows.1/PortableGit-2.6.1-32-bit.7z.exe"
|
||||
},
|
||||
{
|
||||
"name": "clink",
|
||||
"version": "0.4.4",
|
||||
"url": "https://github.com/mridgers/clink/releases/download/0.4.4/clink_0.4.4.zip"
|
||||
"version": "0.4.5",
|
||||
"url": "https://github.com/mridgers/clink/releases/download/0.4.5/clink_0.4.5.zip"
|
||||
},
|
||||
{
|
||||
"name": "conemu-maximus5",
|
||||
"version": "150513",
|
||||
"url": "https://github.com/Maximus5/ConEmu/releases/download/v15.05.13/ConEmuPack.150513.7z"
|
||||
"version": "150913",
|
||||
"url": "https://github.com/Maximus5/ConEmu/releases/download/v15.09.13/ConEmuPack.150913.7z"
|
||||
},
|
||||
{
|
||||
"name": "clink-completions",
|
||||
"version": "0.1.0",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.1.0.zip"
|
||||
"version": "0.2.0",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.2.0.zip"
|
||||
}
|
||||
]
|
||||
|
Reference in New Issue
Block a user