Bug 14751 - Лишняя информация в выводе crontab -l
: Лишняя информация в выводе crontab -l
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/vixie-cron)
: unstable
: all Linux
: P2 minor
Assigned To:
:
:
: patch
:
:
  Show dependency tree
 
Reported: 2008-03-04 16:46 by
Modified: 2008-05-13 08:32 (History)


Attachments
Предлагаемый патч. (1.73 KB, patch)
2008-04-29 10:17, Slava Semushin
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-03-04 16:47:00
coder@mvo ~ $ rpm -qf =crontab
vixie-cron-4.1.20060426-alt3

coder@mvo ~ $ sudo crontab -l 
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.EUuzaf installed on Mon Mar  3 20:05:04 2008)
# (Cron version V5.0 -- vixie-cron-4.1.20060426-alt3)
#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day of the week (0-6 with 0=Sunday).
#|      |       |       |       |       commands
0       21      3       3       1       apt-get install
openoffice.org-langpack-ru -y

Считаю, что первые две строки в выводе crontab -l абсолютно лишние и даже
немного запутывают. Команда печатает на stdout и пользователь не может никакой
файл редкатировать. Кроме того, в выводе команды также фигурирует путь к
временному файлу (которого не существует кстати), который абсолютно не нужен для
пользователя.
------- Comment #1 From 2008-04-29 09:39:27 -------
При редактировании файла (crontab -e) этой шапки нет, потому что там есть такой
код (файл vixie-cron/usr.sbin/cron/crontab.c, ф-ция edit_cmd()):

338     /* ignore the top few comments since we probably put them there.
339      */
340     x = 0;
341     while (EOF != (ch = get_char(f))) {
342         if ('#' != ch) {
343             putc(ch, NewCrontab);
344             break;
345         }
346         while (EOF != (ch = get_char(f)))
347             if (ch == '\n')
348                 break;
349         if (++x >= NHEADER_LINES)
350             break;
351     }

Я предлагаю этот код вынести в отдельную ф-цию, после чего использовать её в
edit_cmd() и list_cmd().
------- Comment #2 From 2008-04-29 10:17:03 -------
Created an attachment (id=2596) [details]
Предлагаемый патч.

Вот патч. (Посмотрим, насколько он ускорит решение проблемы.)
------- Comment #3 From 2008-05-06 17:31:03 -------
Implemented in 4.1.20060426-alt4
------- Comment #4 From 2008-05-06 19:53:24 -------
(In reply to comment #3)
> Implemented in 4.1.20060426-alt4

Хорошо.

Я уже успел отправить свой патч одному из разработчиков OpenBSD (ray@) и он
ответил следующее: "I agree with this change, let me see if I can get it into
the tree.  Thanks!" Т.е., насколько я понял, он их приложит, только когда
неизвестно. Возможно, нужно твой патч отправить ему тоже, если твой лучше моего.
------- Comment #5 From 2008-05-13 08:32:28 -------
Патч (с некоторыми изменениями) был закоммичен в OpenBSD source tree:
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/cron/crontab.c.diff?r1=1.55&r2=1.56