forked from yo8192/fcron
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsave.h
86 lines (72 loc) · 3.71 KB
/
save.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* FCRON - periodic command scheduler
*
* Copyright 2000-2016 Thibault Godouet <fcron@free.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* The GNU General Public License can also be found in the file
* `LICENSE' that comes with the fcron source distribution.
*/
#ifndef __SAVE_H__
#define __SAVE_H__
/* functions defined by save.c */
extern int write_file_to_disk(int fd, struct cf_t *file, time_t time_date);
extern int save_file_safe(cf_t * file, char *final_path, char *prog_name,
uid_t own_uid, gid_t own_gid, time_t save_date);
/* here is the format fcron(tab) uses to save the fcrontabs :
* type(short int)
* size(short int)
* data
* unless for some special tags, which don't have data (size set to 0) */
/* kept for backward compatibility : we now have an extended
* save format with no use of such a fileversion (unless to know that
* the save file is in extended format, not an old one) */
#define S_FILEVERSION 100 /* syntax's version of fcrontabs */
/* type constants : DO NOT REMOVE ANY of them : they are used for backward
* compatibility.
* If necessary, add some. */
/* type is an unsigned short int */
/* header file types */
#define S_HEADER_T 1 /* file version */
#define S_USER_T 2 /* name of the fcrontab's owner */
#define S_TIMEDATE_T 3 /* time and date of saving */
#define S_TZDIFF_T 4 /* time diff between the local and system hour */
/* env var */
#define S_ENVVAR_T 1000 /* an environment variable */
/* line field types */
#define S_ENDLINE_T 2000 /* we need to know where a new line begin */
#define S_SHELL_T 2001 /* shell command of the line */
#define S_NUMEXE_T 2002 /* num of entries in queues & running processes */
#define S_LAVG_T 2003 /* load averages needed (1, 5, 15 mins) */
#define S_UNTIL_T 2004 /* timeout of the wait for a lavg value */
#define S_NICE_T 2005 /* nice value to control priority */
#define S_RUNAS_T 2006 /* determine permissions of the job */
#define S_MAILTO_T 2007 /* mail output to cl_mailto */
#define S_NEXTEXE_T 2008 /* time and date of the next execution */
#define S_REMAIN_T 2009 /* remaining until next execution */
#define S_TIMEFREQ_T 2010 /* Run every n seconds */
#define S_RUNFREQ_T 2011 /* Run once every n matches */
#define S_MINS_T 2012 /* mins boolean array */
#define S_HRS_T 2013 /* hrs boolean array */
#define S_DAYS_T 2014 /* days boolean array */
#define S_MONS_T 2015 /* mons boolean array */
#define S_DOW_T 2016 /* dow boolean array */
#define S_OPTION_T 2017 /* options for that line (see option.h) */
#define S_FIRST_T 2018 /* wait time before first execution */
#define S_TZ_T 2019 /* time zone of the line */
#define S_JITTER_T 2020 /* jitter of the line */
#define S_MAILFROM_T 2021 /* use as email From header */
#endif /* __SAVE_H__ */