summaryrefslogtreecommitdiff
blob: 911793c276d8147c01e89885de4c209ff04fdaa7 (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
/*
 * 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__

#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"

size_t generate_stage1 (dyn_buf_t * data);
size_t generate_stage2 (dyn_buf_t * 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 dyn_buf_t * data);

/*
 * 	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__ */