2017-03-29 12:45:33 +03:00
|
|
|
|
Программа написана на [Scheme](http://www.schemers.org/) (реализация - [GNU Guile](http://www.gnu.org/software/guile/)) и предназначена для учета
|
|
|
|
|
|
рабочего времени. Применяется следующим образом:
|
2014-05-22 13:30:18 +04:00
|
|
|
|
|
|
|
|
|
|
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
|
2014-11-15 17:46:54 +03:00
|
|
|
|
timesheet Show all raw events
|
|
|
|
|
|
timesheet day [DATE] Show raw events for today or DATE
|
|
|
|
|
|
timesheet week [DATE] Show raw events for current week or week of DATE
|
|
|
|
|
|
timesheet month [DATE] Show raw events for current month or month of DATE
|
|
|
|
|
|
timesheet TASK Show raw events
|
2015-10-15 13:14:02 +03:00
|
|
|
|
archive Show archive tasks
|
|
|
|
|
|
archive TASK Add task to archive
|
|
|
|
|
|
unarch TASK Remove task from archive
|
2014-05-22 13:30:18 +04:00
|
|
|
|
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
|
2015-10-15 13:14:02 +03:00
|
|
|
|
|
2014-05-22 13:30:18 +04:00
|
|
|
|
--- 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
|
2015-10-15 13:14:02 +03:00
|
|
|
|
|
2014-05-22 13:30:18 +04:00
|
|
|
|
--- 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 минут. Это может быть удобно при планировании времени на
|
|
|
|
|
|
день/неделю/месяц.
|
|
|
|
|
|
|
2014-11-15 17:46:54 +03:00
|
|
|
|
Для того, чтобы посмотреть историю работы, можно воспользоваться командой
|
|
|
|
|
|
`timesheet`. Эта команда показывает выполнявшиеся задачи в таком виде, в котором
|
|
|
|
|
|
они сохраняются на диск. Параметры команды такие-же, как у команды `report`.
|
|
|
|
|
|
|
2015-10-15 13:14:02 +03:00
|
|
|
|
Задачи (или подзадачи) можно отправлять в архив командой `archive [TASK]`. После этого
|
|
|
|
|
|
они перестают отображаться в отчете и в списке задач. Посмотреть список
|
|
|
|
|
|
архивированных задач можно командой `archive` без параметров. Деархивировать
|
|
|
|
|
|
задачу можно командой `unarch [TASK]`.
|
|
|
|
|
|
|
2017-03-29 12:45:33 +03:00
|
|
|
|
|
2014-05-22 13:30:18 +04:00
|
|
|
|
# Автодополнение для zsh
|
|
|
|
|
|
|
|
|
|
|
|
Для включения автодополнения в zsh скопируйте файл `zsh-completion/_timer` в
|
2017-03-29 12:45:33 +03:00
|
|
|
|
`~/.zsh-completion/`, и добавьте в файл `~/.zshrc` строки
|
2014-05-22 13:30:18 +04:00
|
|
|
|
|
|
|
|
|
|
fpath=(~/.zsh-completions $fpath)
|
|
|
|
|
|
autoload -Uz compinit
|
|
|
|
|
|
compinit
|
|
|
|
|
|
|
|
|
|
|
|
И не забудте сделать симлинк (например) `/usr/local/bin/timer` на `worktimer.scm`.
|
|
|
|
|
|
|
2017-03-29 12:45:33 +03:00
|
|
|
|
|
2014-05-22 13:30:18 +04:00
|
|
|
|
# Автодополнение для bash
|
|
|
|
|
|
|
|
|
|
|
|
Автодополнение в bash включается так:
|
|
|
|
|
|
|
|
|
|
|
|
$ . bash-completion/timer
|
2017-03-29 12:45:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Автодополнение для fish
|
|
|
|
|
|
|
|
|
|
|
|
Скопируйте файл `fish-completion/timer-complete.fish` в папку с конфигом (обычно
|
|
|
|
|
|
это `~/.config/fish`, и дообавьте следующий код в конфигурационный файл:
|
|
|
|
|
|
|
|
|
|
|
|
set -l configdir ~/.config
|
|
|
|
|
|
if set -q XDG_CONFIG_HOME
|
|
|
|
|
|
set configdir $XDG_CONFIG_HOME
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
source $configdir/fish/timer-complete.fish
|