Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров5.7K
С тех пор как я настолько обленился что стал заваривать чай прямо в кружке, я начал пользоваться апплетом 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 "Пельмени готовы" "Идите жрать, пожалуйста!"

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

Все интервалы замерял по своей плите, подкорректируйте при необходимости.
Теги:
Хабы:
Всего голосов 100: ↑84 и ↓16+68
Комментарии42

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань