git pushでパワーオフをバインドする方法は?

git pushでパワーオフをバインドする方法は?

私はインターネットがほとんど接続されていない孤独な場所に住んでいます。

こういうたびにsudo poweroff私もやってみたいgit push。プッシュが失敗した場合は終了を中止し、そうでない場合は終了を続行します。

バイナリを変更せずにこれを達成するにはどうすればよいですか?

答え1

以下は、同じトピックに対するいくつかの選択肢です。 Allは、プッシュが成功すると後続のコマンドをgitoff実行するコマンドを生成します。git pushsudo shutdown -h now

alias gitoff='git push && sudo shutdown -h now'

gitoff () {
    git push && sudo shutdown -h now
}

gitoff () {
    if git push; then
        sudo shutdown -h now
    fi
}

gitoff () {
    if git push; then
        sudo shutdown -h now
    else
        echo >&2 'git push failed, no shutdown'
    fi
}

答え2

次のようにコマンドをシェル関数でラップできます。

function gitpushoff() {
    if git push origin            # if this command succeeds, shutdown
    then
        sudo shutdown -h now
    else
        echo "git push failed: exit code [$?] Aborting shutdown..."
    fi
}

関連情報