概要
頻繁に行う複数のコマンド入力を一回のコマンド入力で済むようにします。
npmとかwebpackとかgcloudとか書いていますが本題と関係ありません。
今回行う流れ
- コマンド作成
- コマンド登録
- 使う
今回簡略化したかった操作
一例なので読まなくていいです。
- npmプロジェクトのディレクトリに移動
- webpackの出力先を削除
- webpackで出力(バインド)する
- gcloudでサーバーに送信
コマンド作成
好きなディレクトリにファイルを作成して開く
viじゃなくてVSCodeとかEmacsとかなんでも大丈夫です。
$ cd ~/Documents/cmd
$ touch newcmd
$ vi newcmd
中身を書く
&&
でコマンドを繋げると成功した場合に次の処理に進みます。
1つ目の操作 &&
次の操作 &&
次の操作
今回の例では次のようなコマンドになります。
pushd ~/project &&
rm -rf dist/* &&
npm start &&
gcloud compute scp --recurse ./dist/* hogeserver:/etc/hoge &&
popd
もう少しちゃんとやりたい人は変数やsetで調べると良いかもしれません。
こんな感じ↓
# setting
set -e -o pipefail
# var
readonly LIVETS_PATH="~/project"
readonly TRANSMITTER_PATH="dist/*"
readonly RECEIVER_PATH="hogeserver:/etc/hoge"
# main
pushd ${LIVETS_PATH}
rm -rf ${TRANSMITTER_PATH}
npm start
gcloud compute scp --recurse ${TRANSMITTER_PATH} ${RECEIVER_PATH}
popd
コマンド登録
筆者がzsh使っているのでzshに書きます。
bashの人はそっちに書いてください。
~/.zshrc
を開く
$ vi ~/.zshrc
追記する
alias newcmd='~/Documents/cmd/newcmd'
こうすることでnewcmd
と入力した時に~/Documents/cmd/newcmd
と入力したのと同じことになります。
使う
次で動きます。
$ newcmd
動く