mirror of
https://github.com/cmderdev/cmder.git
synced 2025-06-12 20:47:59 +08:00
Merge remote-tracking branch 'upstream/development' into development
Conflicts: bin/alias.bat
This commit is contained in:
@ -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
|
@ -12,7 +12,11 @@ if ["%1"] == ["/?"] goto:p_help
|
||||
if ["%1"] == ["/reload"] goto:p_reload
|
||||
:: /d flag for delete existing alias
|
||||
if ["%1"] == ["/d"] goto:p_del %*
|
||||
if ["%2"] == [""] echo Insufficient parameters. & goto:p_help
|
||||
:: if arg is an existing alias, display it
|
||||
if ["%2"] == [""] (
|
||||
doskey /macros | findstr /b %1= && goto:eof
|
||||
echo Insufficient parameters. & goto:p_help
|
||||
)
|
||||
|
||||
:: validate alias
|
||||
for /f "delims== tokens=1" %%G in ("%_x%") do set alias=%%G
|
||||
|
Reference in New Issue
Block a user