go getで取得したコマンドの名前を変更する

yeomanを入れて実行したところエラー ❯ yo code must specify 3 arguments 確認したところspannerのgeneratorであるyoがすでに入っていました… ❯ yo help yo is a command-line tool to generate Go code for Google Cloud Spanner. (混乱を避けるため、以降ではコードブロック以外yoはspannerのコードジェネレートツールを指します) 両方利用したかったのでspanner generatorのyoを別名に書き換える方針で決めました。 その名もgoyoです(ババーン) 本題 ではどうやったらgo getで取得したコマンド名を変えられるのか? go getのオプションを探しましたがありませんでした そこで仕方なくyoの名前自体を変更します yoはバイナリが入っていると思ったらシェルスクリプトでした (goenvを使っているとそうなる?) ❯ file ~/.anyenv/envs/goenv/shims/yo /Users/motoki.yoan/.anyenv/envs/goenv/shims/yo: Bourne-Again shell script text executable, ASCII text ❯ cat ~/.anyenv/envs/goenv/shims/yo #!/usr/bin/env bash set -e [ -n "$GOENV_DEBUG" ] && set -x program="${0##*/}" if [[ "$program" = "go"* ]]; then for arg; do case "$arg" in -c* | -- ) break ;; */* ) if [ -f "$arg" ]; then export GOENV_FILE_ARG="$arg" break fi ;; esac done fi export GOENV_ROOT="/Users/me/.anyenv/envs/goenv" exec "/Users/me/.anyenv/envs/goenv/libexec/goenv" exec "$program" "$@" programがyoを表しているように見えますが、##*/が意味不明です ...

February 6, 2021 · 1 min · motoki yoan