/ / メモ
2007-08-31

function PS-ssh-agent
{
    param([switch]$k)
    if($k)
    {
        $con = ssh-agent -k;
        $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)");
        echo $reg.Match($con).Groups[1].value;
        Remove-Item env:SSH_AUTH_SOCK
        Remove-Item env:SSH_AGENT_PID
        return;
    }else{
        $con = ssh-agent -c;

        $reg = new-object System.Text.RegularExpressions.Regex("SSH_AGENT_PID (\d+)");
        New-Item env:SSH_AGENT_PID -value $reg.Match($con).Groups[1].value | Out-Null;

        $reg = new-object System.Text.RegularExpressions.Regex("SSH_AUTH_SOCK (/tmp/ssh-\w+/agent\.\d+)")
        New-Item env:SSH_AUTH_SOCK -value $reg.Match($con).Groups[1].value | Out-Null;

        $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)");
        echo $reg.Match($con).Groups[1].value;
        return;
    }
}

eval したときと同じように環境変数を設定する。

-k でプロセスの削除

トラックバック http://mikanya.dip.jp/memo/2007-08-31-1