1 #include "stralloc.h"
2 #include "scheduled.h"
3 #include "bailout.h"
4 #include "fmt.h"
5
6 /* put a schedule file name into sa */
7 void
make_name(stralloc * sa,struct jobinfo * j)8 make_name(stralloc *sa, struct jobinfo *j)
9 {
10 int needcomma=0;
11 uint64 ui64;
12 unsigned int l;
13 char nb[FMT_ULONG];
14
15 if (!stralloc_copys(sa,"@")) oom();
16 ui64=HACK_TAIA_SEC(&j->lastrun);
17 l=fmt_xlong(nb,ui64>>32);
18 if (8!=l)
19 if (!stralloc_catb(sa,"00000000",8-l)) oom();
20 if (!stralloc_catb(sa,nb,l)) oom();
21 l=fmt_xlong(nb,ui64 & 0xffffffff);
22 if (8!=l)
23 if (!stralloc_catb(sa,"00000000",8-l)) oom();
24 if (!stralloc_catb(sa,nb,l)) oom();
25 if (!stralloc_cats(sa,":")) oom();
26 /* tai finished */
27 if (!stralloc_catb(sa,j->id,j->idlen)) oom();
28 if (!stralloc_cats(sa,":")) oom();
29
30 nb[fmt_ulong(nb,j->late)]=0;
31 if (!stralloc_cats(sa,nb)) oom();
32 if (!stralloc_cats(sa,":")) oom();
33
34 nb[fmt_ulong(nb,j->repeats)]=0;
35 if (!stralloc_cats(sa,nb)) oom();
36 if (!stralloc_cats(sa,":")) oom();
37
38 if (!stralloc_catb(sa,j->cronspec,j->cronlen)) oom();
39 if (!stralloc_cats(sa,":")) oom();
40 if (!stralloc_catb(sa,j->comment,j->commentlen)) oom();
41 if (!stralloc_cats(sa,":")) oom();
42
43 if (j->null1) {
44 if (needcomma)
45 if (!stralloc_cats(sa,",")) oom();
46 if (!stralloc_cats(sa,"null1")) oom();
47 needcomma=1;
48 }
49 if (j->null2) {
50 if (needcomma)
51 if (!stralloc_cats(sa,",")) oom();
52 if (!stralloc_cats(sa,"null2")) oom();
53 needcomma=1;
54 }
55 if (!stralloc_cats(sa,":")) oom();
56 if (!stralloc_catb(sa,j->fromspec,j->fromlen)) oom();
57 if (!stralloc_cats(sa,":")) oom();
58 if (!stralloc_catb(sa,j->tospec,j->tolen)) oom();
59 if (!stralloc_cats(sa,":")) oom();
60 nb[fmt_ulong(nb,j->every)]=0;
61 if (!stralloc_cats(sa,nb)) oom();
62 if (!stralloc_0(sa)) oom();
63 }
64
65