blob: 58e75402dadada8eb1b965bafc899dab21e3918c (
plain)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/*
* parse.h
*
* Parser for Gentoo style rc-scripts.
*
* Copyright (C) 2004,2005 Martin Schlemmer <azarah@nosferatu.za.org>
*
*
* 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 version 2 of the License.
*
* 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.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Header$
*/
#ifndef _PARSE_H
#define _PARSE_H
#include <sys/types.h>
#include "list.h"
#define LEGACY_CACHE_FILE_NAME "deptree"
#define FIELD_RCSCRIPT "RCSCRIPT"
#define FIELD_NEED "NEED"
#define FIELD_USE "USE"
#define FIELD_BEFORE "BEFORE"
#define FIELD_AFTER "AFTER"
#define FIELD_PROVIDE "PROVIDE"
#define FIELD_FAILED "FAILED"
typedef struct {
struct list_head node;
char *filename;
time_t mtime;
time_t confd_mtime;
} rcscript_info_t;
struct list_head rcscript_list;
int get_rcscripts(void);
int check_rcscripts_mtime(char *cachefile);
size_t generate_stage1(char **data);
size_t generate_stage2(char **data);
size_t read_stage2(char **data);
int write_stage2(FILE *outfile);
size_t generate_stage3(char **data);
size_t read_stage3(char **data);
int write_stage3(FILE *outfile);
int write_legacy_stage3(FILE *output);
int parse_cache(const char *data, size_t lenght);
/*
* get_rcscripts()
* |
* V
* check_rcscripts_mtime() ------------------------------> read_stage3()
* | |
* | |
* V V
* generate_stage1() (Called by generate_stage2()) parse_cache()
* | |
* | |
* V |
* generate_stage2() ----> write_stage2() (Debugging) |
* | |
* | |
* | === parse_cache() |
* V | | |
* generate_stage3() ==| | |
* | | | |
* | | V |
* | === service_resolve_dependencies() |
* | |
* | |
* |-------> write_legacy_stage3() (Proof of Concept |
* | or Debugging) |
* | |
* V |
* write_stage3() |
* | |
* | V
* |<-------------------------------------------------------
* |
* V
*
*/
#endif /* _PARSE_H */
|