On 3 Dec 1997, Rob Browning wrote:
> Joey Hess <[EMAIL PROTECTED]> writes: > > > Another way, that sould comply with policy, were if cron came with a > > update-crontab script, that was responsible for modifying /etc/crontab, > > in a similar fasion to update-inetd. > > I think that this, or something similar, is in the end, the right > solution. > > Ideally, I think this should be handled like the menu package. > /etc/crontab would be augmented to have something like: > > # ==== BEGIN AUTOMATICALLY GENERATED SECTION -- DO NOT EDIT ==== # > > > # ==== END AUTOMATICALLY GENERATED SECTION -- DO NOT EDIT ==== # > > Then each package would just have a file in /usr/lib/cron/auto (or > whatever) which would be used to (re)build the contents of this > section whenever a relevant package was installed. Well, that's pretty much what I was suggesting in the beginning. The only difference is that you wouldn't have one, monolithic section. Rather, you'd have sections placed there by the individual packages. For example: echo "42 6 * * * root run-parts /etc/cron.daily" | \ alter-file /etc/crontab --package=cron causes /etc/crontab to read: # cron BEGIN 42 6 * * * root run-parts /etc/cron.daily # cron END And then you could append to sections, like so: echo "47 6 * * 7 root run-parts /etc/cron.weekly" | \ alter-file /etc/crontab --package=cron --append to give: # cron BEGIN 42 6 * * * root run-parts /etc/cron.daily 47 6 * * 7 root run-parts /etc/cron.weekly # cron END You get the idea. Of course, in real life, you wouldn't do a section a line at a time. You'd pipe the whole snippet in like so: alter-file /etc/crontab --package=cron < /tmp/mysnippet You could remove a section: alter-file /etc/crontab --package=cron --remove You could also specify that, if removal of a section leaves the file empty, then remove the file: alter-file /etc/crontab --package=mgetty --remove --rm-on-empty Also, since not all config files use "#" as the comment, you'd be able to specify alternate comment chars (that the program uses for the BEGIN and END markers): alter-file /etc/someconfig --package=foobar --comment=";" < /etc/snippet Well, you guys get the idea...... I already have something like this written. One of my company's clients uses us as an e-mail forwarding service. So we maintain the forwarding e-mail addresses in an Access database and, periodically, we export it to a text file and feed it into this script I've got which replaces everything between "# BEGIN someclient" and "# END someclient" with the new section. So... it wouldn't be all that difficult to add the other features I've mentioned. The only problem is that it uses Perl. I haven't read the Debian policies so I don't know if Perl (or a stripped down version of it) is one of the things I can assume is on even the most minimal system. If not, I can do the same thing with bash/sed, I s'pose. - Joe -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED] .