2024/1/26 (金)

mr/wslのrgを便利に

ripgrep のファイル名出力部分に Windows のパス表記を追加する

$ rg -F 'example.com' ~/.ssh ~/first/*.md
C:\Users\HOGE\AppData\Roaming\first\wifi.md  ★★★追加★★★
/home/HOGE/first/wifi.md
73:hoge@example.com

\\wsl.localhost\Ubuntu\home\HOGE\.ssh\config  ★★★追加★★★
/home/HOGE/.ssh/config
89:  HostName     a.example.com
94:  HostName     o.example.com
98:  HostName     p.example.com

rgでヒットしたファイルをWindowsの既定のアプリで開きたいときに、
マウスでターミナルに表示されたWindowsのパスをコピーしたら

  1. Win-R(「ファイル名を指定して実行」ダイアログを表示)
  2. Ctrl-V (「名前」欄にファイル名をペースト)
  3. Enter

たったの3ストロークでOK

やり方

rg のラッパー関数を作ります。bash依存です。

rg(){
  color='\033[0;36m'
  color_off='\033[0m'

  command rg -p "$@" |
  while read -r line; do
    if [[ $line =~ ^[\[$'\x1b'0-9m]+/ ]]; then
      # shellcheck disable=SC2001
      p_wsl="$(sed -E 's/\x1b\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[mGK]//g' <<<"$line")"
      p_wsl="$(readlink -f "$p_wsl")"
      p_windows="$(wslpath -w "$p_wsl")"
      printf '%b%s%b\n' "$color" "$p_windows" "$color_off"
    fi
    echo "$line"
  done
}

2024/1/25 (木)

mr/svnお前もか!

基本

有名なやつ

curl: (35) error:0A000152:SSL routines::unsafe legacy renegotiation disabled - Stack Overflow

/etc/ssl/openssl.cnf の書き換えをしたくない場合に、curl を関数でラップしてしまう案

$ type curl
curl is a function
curl ()
{
    OPENSSL_CONF=<(cat /etc/ssl/openssl.cnf ; echo Options = UnsafeLegacyRenegotiation) command curl "$@"
}

応用

$ svn update
Updating '.':
svn: E170013: Unable to connect to a repository at URL 'https://example.com/svn/2023_repo'
svn: E120171: Error running context: An error occurred during SSL communication

それなら svn もラップ関数を・・・というのを繰り返したくないので、

$ type unsafe
unsafe is a function
unsafe ()
{
    OPENSSL_CONF=<(cat /etc/ssl/openssl.cnf ; echo Options = UnsafeLegacyRenegotiation) command "$@"
}

という関数を定義して

 unsafe curl ...

とか

 unsafe svn ...

とか

 unsafe wget ...

とかとかやるのが良いかもしれません

2024/1/18 (木)

mr/独自ドメインが嫌われた?!

いつの間にか自宅から独自ドメインのWebサーバにアクセスしようとすると Cisco Umbrella に阻まれるようになってしまった

よくよく調べたら(≒思い出したら)自宅のDNSがOpenDNS FamilyShieldを向いていた

ということで、別のDNSに向けたら無事解決しました


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS