Pull to refresh

Напоминание о событиях с HolidaySH

Reading time2 min
Views1.9K
Привет, Хабр!

На днях написал скрипт для оповещения разных событий: дней рождения, задач.
Сегодня сел и оформил по-человечески в гибку консольную программу для оповещения событий совершенно разного рода по шаблонам, которые можно добавлять.

И так, перед вами HolidaySH, которая написана на bash.

Основные преимущества:
— Работает с текстовыми файлами
— Можно редактировать шаблоны

Установка



Для debian-based дистрибутивов: holidaysh.deb
Остальным — придется раскидывать файлы руками, делаете чекоут:
$ svn checkout holidaysh.googlecode.com/svn/trunk holidaysh
В holidaysh удаляете папку DEBIAN и разбрасываете файлы по папкам, даете права на выполнение (ВАЖНО!: У файлов-шаблонов также должны быть права на выполнение)

Использование



Для работы с программой нужно в домашней папке создать файл ".holidayshrc" с таким текстом:
HOLIDAYSLIST="~/holidays"
TEMPLATESDIR="~/.holidaysh/templates"


HOLIDAYSLIST — путь к файлу со списком праздников.
TEMPLATESDIR — путь к папке с пользовательскими шаблонами — указывайте при желании писать шаблоны.

По умолчанию праздники HSH берет из файла /etc/holidaysh/holiday-list, а также всех файлов в папке /etc/holidaysh/holidays.d/
Шаблоны — в папке /etc/holidaysh/templates/

Файл праздников — текстовый файл с такой информацией: (разделено символами таба "\t")
1) Шаблон события
Обязательное поле.
В моём комплекте есть 5 шаблонов: b (birdthday — день рождения), i (info — просто событие с информацией), t (task — задача на целый день), tt (time task — задача на указанное время).

2) Дата
Дата, в формате DD/MM/YYYY, обязательное поле.

3) Далее идут параметры в замисимости от выбранного шаблона.
Например, для дня рождения далее идет одно поле с именем человека в родительном падеже.

Пример файла с праздниками: (разделители — табы)
b 22/05/1990 Теста Тестовича
b 24/02/1984 Эксперементыча
t 22/05/2010 написать статью на хабре
tt 22/05/2010 10:00 попробовать задачу со временем


При запуске без параметров программа выдает праздники на сегодняшнее число:
$ holidaysh
День рождения у Теста Тестовича, исполняется 20
Сегодня тебе нужно написать статью на хабре
Сегодня в 10:00 тебе нужно попробовать задачу со временем

Параметры:
-d задает дату
$ holidaysh -d 24/02/2010
День рождения у Эксперементыча, исполняется 26

-p задает дополнительные параметры, которые передаются напрямую к шаблонам. Разделяются запятой.
Например, -p speech должны обрабатывать все шаблоны и оптимизировать вывод для голосового оповещения.
Сейчас -p speech обрабатывает только tt — убирает знак двоеточия между часами и минутами.

$ holidaysh
День рождения у Теста Тестовича, исполняется 20
Сегодня тебе нужно написать статью на хабре
Сегодня в 10:00 тебе нужно попробовать задачу со временем

$ holidaysh -p speech
День рождения у Теста Тестовича, исполняется 20
Сегодня тебе нужно написать статью на хабре
Сегодня в 10 00 тебе нужно попробовать задачу со временем

Удачи! Если понадобится — в следующей статье напишу как делать шаблоны.
Tags:
Hubs:
+3
Comments5

Articles