Re: [dev] [scron] simple cron daemon

From: Jack L. Frost <fbt_AT_fleshless.org>
Date: Sat, 5 Jul 2014 15:46:17 +0400

Nice! Thanks a lot.

I've made an AUR package for scron btw: https://aur.archlinux.org/packages/scron-git

On Sat, Jul 05, 2014 at 12:52:05PM +0300, Ari Malinen wrote:
> Maybe something like this:
> --- /home/defer/temp/scron/crond.c 2014-07-05 12:16:11.917457442 +0300
> +++ crond.c 2014-07-05 12:47:43.147434577 +0300
> _AT_@ -23,6 +23,7 @@
> struct range {
> int low;
> int high;
> + int div;
> };
>
> struct ctabentry {
> _AT_@ -150,12 +151,15 @@ matchentry(struct ctabentry *cte, struct
> size_t i;
>
> for (i = 0; i < LEN(matchtbl); i++) {
> /* this is the match-any case, '*' */
> if (matchtbl[i].r->low == -1 && matchtbl[i].r->high == -1)
> continue;
> if (matchtbl[i].r->high == -1) {
> if (matchtbl[i].r->low == matchtbl[i].tm)
> continue;
> + else if (matchtbl[i].tm % matchtbl[i].r->div == 0)
> + continue;
> } else {
> if (matchtbl[i].r->low <= matchtbl[i].tm &&
> matchtbl[i].r->high >= matchtbl[i].tm)
> _AT_@ -171,7 +175,7 @@ matchentry(struct ctabentry *cte, struct
> static int
> parsefield(const char *field, int low, int high, struct range *r)
> {
> - int min, max;
> + int min, max, div;
> char *e1, *e2;
>
> if (strcmp(field, "*") == 0) {
> _AT_@ -180,6 +184,7 @@ parsefield(const char *field, int low, i
> return 0;
> }
>
> + div = -1;
> max = -1;
> min = strtol(field, &e1, 10);
>
> _AT_@ -190,6 +195,15 @@ parsefield(const char *field, int low, i
> if (e2[0] != '\0')
> return -1;
> break;
> + case '*':
> + e1++;
> + if (e1[0] == '/') {
> + e1++;
> + div = strtol(e1, &e2, 10);
> + if (e2[0] != '\0')
> + return -1;
> + break;
> + }
> case '\0':
> break;
> default:
> _AT_@ -204,6 +218,7 @@ parsefield(const char *field, int low, i
>
> r->low = min;
> r->high = max;
> + r->div = div;
> return 0;
> }
>
> On Sat, Jul 5, 2014 at 12:35 PM, Dimitris Papastamos <sin_AT_2f30.org> wrote:
> > On Sat, Jul 05, 2014 at 11:41:00AM +0400, Jack L. Frost wrote:
> >> No */n for “every n <unit>”?
> >> Pretty much useless without that if you ever need a command to be run every five minutes, for example.
> >
> > I've forked scron[0] and I plan to implement */n at some point. If
> > you get to it first, please send a patch here.
> >
> > [0] http://git.2f30.org/scron
> >
Received on Sat Jul 05 2014 - 13:46:17 CEST

This archive was generated by hypermail 2.3.0 : Sat Jul 05 2014 - 13:48:07 CEST