diff --git a/README.md b/README.md new file mode 100644 index 0000000..2f4c3ee --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +Программа написана на [Scheme](http://www.schemers.org/) (реализация - [GNU Guile](http://www.gnu.org/software/guile/)) и предназначена для учета +рабочего времени. Применяется следующим образом: + + Usage: timer [command] + Commands: + start [TASK] Start new task. If no task, use last runned task + stop Stop task + report Show report + report day [DATE] Show report for today or DATE + report week [DATE] Show report for current week or week of DATE + report month [DATE] Show report for current month or month of DATE + report TASK Show report for project + deadline set [TASK] DATE|TIME Add deadline for project (or for last task) + deadline clear [TASK] Remove deadline for project (or for last task) + deadline [TASK] Show deadline for project + deadline all Show all deadlines + refresh Refresh worksheet file after manual edit + (no command) Show running task and timer + +Начало работы над задачей: + + $ worktimer.scm start [НАЗВАНИЕ_ЗАДАЧИ] + +Название задачи может состоять из нескольких частей, разделенных символом +прямого слэша. Части названия - это элементы иерархии задачи, например, название +проекта, название подпроекта, задача, подзадача и т.д. Программа учитывает +иерархическую структуру задач и вычисляет время задач, как сумму времен +подзадач. + +Пример: + + $ worktimer.scm start uberproject/website/design + +Стартует отсчет времени на подзадачу "design" задачи "website" проекта +"uberproject". Уровни вложенности не ограничены. Если команде `start` не +передать агрумент, то будет запущена последняя задача. + +Остановить отсчет времени можно командой `stop`: + + $ worktimer.scm stop + +или запустив новую задачу: + + $ worktimer.scm start uberproject/website/programming + +По команде `report` выводится отчет по всем проектам и задачам: + + $ worktimer.scm report + --- REPORT + Overall: 00:03:45 + uberproject: 00:03:45 + website: 00:03:45 + programming: 00:02:34 + design: 00:01:11 + + --- LAST STOPPED TASK + uberproject/website/programming: [2014-04-18 09:47:04] - [2014-04-18 09:49:38] - 00:02:34 + +Как видно, общее время работы над проектом составило 3 минуты и 45 секунд, из +которых на дизайн сайта ушло 1 минута 11 секунд, а на программирование 2 минуты +34 секунды. + +Команда `report` может иметь параметры: + +- `day [DATE]` - отчет по текущему дню или по дате DATE; + +- `week [DATE]` - отчет по текущей неделе или по неделе, в которую входит день + DATE; + +- `month [DATE]` - отчет по текущему месяцу или по месяцу, в который входит день + DATE; + +Кроме того, параметром команды `report` может быть название проекта, например: + + $ worktimer.scm report uberproject/website + --- REPORT + Overall: 00:03:45 + uberproject: 00:03:45 + website: 00:03:45 + + --- LAST STOPPED TASK + uberproject/website/programming: [2014-04-18 09:47:04] - [2014-04-18 09:49:38] - 00:02:34 + +При запуске программы без аргументов выводится имя текущей задачи и текущий +таймер: + + $ worktimer.scm + uberproject/website/programming: 00:02:51 + +Команда `deadline` предназначена для добавления и удаления дедлайнов. Дедлайны +могут быть датой, до которой нужно закончить проект, или временем, которое можно +потратить на выполнение задачи. + +Установить дедлайт для проекта можно командой `deadline set`. В качестве +аргумента может выступать имя задачи и дата/время или просто дата/время (в этом +случае дедлайн установится для последней запущеной задачи). + +Удаляется дедлайн командой `deadline clear` с именем проекта в качестве +параметра. + +Посмотреть установленные дедлайны можно командой `deadline all`. Команда `deadline` +без параметров выведет дедлайн для текущей задачи. + +Дедлайны отображаются в отчете. Для дедлайна по времени признак истечения +времени зависит от периода, за который сформирован отчет. Например, если дедлайн +по проекту 1 час, а всего на проект потрачено 2 часа, из которых сегодня только +20 минут, то при формировании отчета за весь период (или по проекту) признак +превышения времени будет установлен. А при отчете за сегодня, до дедлайна +останется еще 40 минут. Это может быть удобно при планировании времени на +день/неделю/месяц. + +# Автодополнение для zsh + +Для включения автодополнения в zsh скопируйте файл `zsh-completion/_timer` в +`~/.zsh-completion/`, и добавте в файл `~/.zshrc` строки + + fpath=(~/.zsh-completions $fpath) + autoload -Uz compinit + compinit + +И не забудте сделать симлинк (например) `/usr/local/bin/timer` на `worktimer.scm`. + +# Автодополнение для bash + +Автодополнение в bash включается так: + + $ . bash-completion/timer