Pull to refresh

Простейшее напоминание о пельменях на bash

Reading time 2 min
Views 5.6K
С тех пор как я настолько обленился что стал заваривать чай прямо в кружке, я начал пользоваться апплетом teatime. Уже после третьего дня там завелась настройка «Пельмени». Разумеется, не лучшее решение, если учесть особенности техпроцесса варки этого замечательного блюда.
Так как писать апплет мне тоже было лень, я решил набросать крошечный скриптик для напоминаний.

Итак, постановка задачи


Суть задачи крайне проста — два таймера, один уведомляет о закипании воды, второй — о готовности блюда. Уведомление лучше сопровождать светомузыкальными эффектами для улучшение реакции.

Реализация



Набросок

Простейший вариант можно описать так:
  • подождать n-ное количество времени
  • уведомить о закипании воды
  • подождать n-ное количество времени
  • уведомить о готовности

Само уведомление состоит из:
  • Стандартного уведомления
  • Сигнала динамиком
  • Мигание дверцой привода

Подготовка

Уведомление осуществляется посредством notify-send. Команда подачи текстового сообщения:
notify-send Заголовок Сообщение
Для верности установим флаг -t 10000 чтобы сообщение держалось 10 секунд.
Сигнал динамиком подадим командой beep. Эстеты могут подредактировать частоту и длительность, но меня устраивают дефолтные настройки.
Дверца открывается-закрывается командами eject -r и eject -t

При отсутствии библиотек их можно доустановить:
sudo apt-get install libnotify-bin beep

Код

Не мудрствуя лукаво возьмём приведённый выше простейший вариант. Единственное — вынесем в отдельную процедуру все пляски с уведомлениями. Передаём ей текст и количество бипов\открываний дверцы.
#!/bin/sh

before_boil=8
after_boil=10
beep=true
tray=true

cry(){
    notify-send -t 10000 "$2" "$3"
    i=$1
    while [ $i -gt 0 ]; do
        if $beep; then beep; fi
        if $tray; then eject -r; eject -t; fi
        i=$(($i-1))
    done
}

cry 0 "Варка пошла" "Кастрюля с водой на плите. Лавровый лист и перец горошком по вкусу"
sleep ${before_boil}m
cry 1 "Вода закипела" "Посоли воду, брось пельмени, убавь газ. Можно пока замешать соус из-того-что-есть-в-холодильнике"
sleep ${after_boil}m
cry 2 "Пельмени готовы" "Идите жрать, пожалуйста!"

В шапке скрипта настройки:
  • время до закипания
  • время варки (от закипания до готовности)
  • подавать ли гудок
  • открывать ли привод

Все интервалы замерял по своей плите, подкорректируйте при необходимости.
Tags:
Hubs:
+68
Comments 42
Comments Comments 42

Articles