コマンドの実行が終わったタイミングで、スマホへ通知する方法のご紹介。
時間のかかるコマンドを実行した時に、とても便利。
(vagrant upとかansibleのプロビジョニングとか最近多いので。)

PUSHOVER

スマホに通知を送るだけで良いので、PUSHOVERというサービスを利用しています。
500円の有料アプリで、期限なく使えるようになります。
https://pushover.net/

ログインして、ユーザーキーとAPIトークンをチェックします。

$HOME/.pushoverに、これらを定義します。

PUSHOVER_TOKEN=...
PUSHOVER_USER_KEY=...

コマンド

先ほどの設定を読み込み、引数の内容を通知するコマンド。

#!/bin/bash

readonly SETTING_PATH="$HOME/.pushover"

if [ "$#" -lt 1 ]; then
    echo "Usage: $(basename $0) message"
    exit 1
fi

if ! [ -f "$SETTING_PATH" ]; then
    echo "not found $SETTING_PATH"
    exit 1
fi

source "$SETTING_PATH"
curl -s \
    --form-string "token=$PUSHOVER_TOKEN" \
    --form-string "user=$PUSHOVER_USER_KEY" \
    --form-string "message=$1" \
    https://api.pushover.net/1/messages.json

使用例

実行時間の長いコマンド; notify MESSAGEと実行するだけ。
vagrant up; notify "finished!!"みたいに。