Видео ролики бесплатно онлайн

Смотреть вудман видео

Официальный сайт e-rus 24/7/365

Смотреть видео бесплатно

22.05.10 10:17 antigluk

СкриптыНапоминалка о событиях HolidaySH

Привет, Вилинуксоид!

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

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

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

Установка



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

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



Для работы с программой нужно в домашней папке создать файл ".holidayshrc" с таким текстом:
1
2
HOLIDAYSLIST="$HOME/holidays"
TEMPLATESDIR="$HOME/.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) Далее идут параметры в замисимости от выбранного шаблона.
Например, для дня рождения далее идет одно поле с именем человека в родительном падеже.

Пример файла с праздниками: (разделители - табы)
1
2
3
4
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 тебе нужно попробовать задачу со временем

Удачи! Если понадобится - в следующей статье напишу как делать шаблоны.



Iliander 22.05.10 11:56 # +0
гм… хороший скрипт, спасибо!
Хотя думаю, что ещё буду его под себя переписывать — пожалуй, уберу некую зависимость от системных директорий (свои скрипты храню в ~/bin, переносимость лучше и в случае проблем с системой не беспокоюсь за то, что что-то забыл), да и неплохо добавить возможность добавлять задачи прямо из скрипта.
А ещё (как предложили на хабре) и вправду можно jabber-бота оформить под это дело… :)
В общем, ещё есть, что поковырять, но начало и вправду хорошее!
Iliander 22.05.10 12:00 # +0
И да, кстати, забыл добавить, что у меня при приведенных Вами настройках в файле .holidayshrc скрипт ругался:
% cat ~/.holidayshrc
HOLIDAYSLIST="~/holidays"
TEMPLATESDIR="~/.holidaysh/templates"
% holidaysh
cat: ~/holidays: Нет такого файла или каталога

Заменил строку на
HOLIDAYSLIST="$HOME/holidays"

и всё заработало как надо.
antigluk 22.05.10 12:03 # +0
Хм, возможно. Пример писал прямо в редакторе, не проверял. Поменял на ваш.
karp 22.05.10 13:48 # +0
Для работы с программой нужно в домашней папке создать файл ".holidayshrc" с таким текстом:
1 HOLIDAYSLIST="$HOME/holidays"
2 TEMPLATESDIR="$HOME/.holidaysh/templates"


Почему бы не сделать в скрипте проверку на существование файла .holidayshrc. И если файл не существует, то создать его с дефолтным содержанием?
Тогда не будет проблем как в комментарии выше.
antigluk 22.05.10 13:54 # +1
Этого делать не обязательно, потому что если нет такого файла - то программа берет дефолтные настройки из /etc/holidaysh/*
Vzlom 22.05.10 14:26 # +1
Народ =) Есть ли желание допилить сие чудо, так что мама не горюй?
antigluk 22.05.10 14:28 # +1
У меня есть :)
Есть предложения?
Какие мои планы: несколько скриптов для быстрой интеграции с notifyosd, festival.
Vzlom 22.05.10 15:21 # +0
Синхронизацию с инетом хочу)
antigluk 22.05.10 15:23 # +0
Можно с гуглокалендарем сделать - не проблема с gcalcli
Vzlom 22.05.10 20:35 # +0
во вообще ништяк =)

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 141)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2823 из 215 городов)
            Топ пользователей Топ блогов

            Новенькие: Angela88-25, Wintur, _DM_, aguanic, ische
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн