summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Heim <phreak@gentoo.org>2005-12-02 10:56:06 +0000
committerChristian Heim <phreak@gentoo.org>2005-12-02 10:56:06 +0000
commita14ee4ab9b6b622475c9520fb3d08e6f78b08881 (patch)
treeff48cc3f5de2918ab569e3cb391db1ec883a35eb /src/core/librcscripts/parse.h
parentImport the latest baselayout changes. Merging revision 1648. (diff)
downloadbaselayout-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.h100
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 */
+