diff options
author | Christian Heim <phreak@gentoo.org> | 2005-12-02 10:56:06 +0000 |
---|---|---|
committer | Christian Heim <phreak@gentoo.org> | 2005-12-02 10:56:06 +0000 |
commit | a14ee4ab9b6b622475c9520fb3d08e6f78b08881 (patch) | |
tree | ff48cc3f5de2918ab569e3cb391db1ec883a35eb /src/core/librcscripts/parse.h | |
parent | Import the latest baselayout changes. Merging revision 1648. (diff) | |
download | baselayout-vserver-a14ee4ab9b6b622475c9520fb3d08e6f78b08881.tar.gz baselayout-vserver-a14ee4ab9b6b622475c9520fb3d08e6f78b08881.tar.bz2 baselayout-vserver-a14ee4ab9b6b622475c9520fb3d08e6f78b08881.zip |
Import the latest baselayout changes. Merging revision 1658.
svn path=/baselayout-vserver/trunk/; revision=127
Diffstat (limited to 'src/core/librcscripts/parse.h')
-rw-r--r-- | src/core/librcscripts/parse.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/core/librcscripts/parse.h b/src/core/librcscripts/parse.h new file mode 100644 index 0000000..58e7540 --- /dev/null +++ b/src/core/librcscripts/parse.h @@ -0,0 +1,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 */ + |