Useful scripts I used (Part 6)

Reading time ~1 minute

Wake me up lightly.

Alarm

前段时间在公司的时候午休时间我一般会小憩一会儿,但是很容易睡过头了,睡久了下午反而更没精神了,所以我需要这样一个办公室闹钟:不会打扰其他人,只会叫醒我自己,更不要瞎吵吵一下子把我吓醒的。

通常很多音频播放类 app 都会有延时停止的功能,但是延时播放的倒计时闹钟好像并不多,于是索性自己写一个。

# Play music after specified duration as an alarm.
alarm:
    #!/usr/bin/env bash
    set -euo pipefail

    echo -n "How soon should I wake you up? > "
    read num

    duration=$(expr 60 \* $num)
    echo "$(date +%H:%M:%S): Sleeping $num minute(s)..."
    sleep $duration
    echo "$(date +%H:%M:%S): Time to wake up..."

    list="
    /Users/hanwei/Music/网易云音乐/Hans Zimmer - First Step.mp3
    /Users/hanwei/Music/网易云音乐/Hans Zimmer - Flying Drone.mp3
    /Users/hanwei/Music/网易云音乐/Hans Zimmer - Cornfield Chase.mp3
    /Users/hanwei/Music/网易云音乐/Hans Zimmer - No Time For Caution.mp3
    /Users/hanwei/Music/网易云音乐/Hans Zimmer - S.T.A.Y.mp3
    /Users/hanwei/Music/Download/安室奈美惠-FIGHT TOGETHER.mp3
    /Users/hanwei/Music/Download/高梨康治 - 出陣.mp3
    "

    IFS=$'\n' array=($list)

    trap "say \"Welcome back, sir! \" &" SIGINT SIGTERM SIGQUIT

    while true
    do
        for element in "${array[@]}"
        do
            echo "Playing $(tput setaf 2)$(basename $element)$(tput sgr 0)"
            afplay -v 0.3 -q 1 $element
        done
    done

我大爱 星际穿越 里面 Hans Zimmer 的配乐,所以选了几首轻的音乐当开头,最后两个分别是 One Piece 和 Naruto 里面的主题曲和背景音乐,相对亢奋。通常两个大循环就能把我叫醒了。

Example

just alarm
Updated on Will Han