Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
add pkg_script and pkg_exec (into pkg_exec.c which will receive all execution related code)
Baptiste Daroussin committed 15 years ago
commit bfe24ede1977be4fa911d7ec4d09dfa346db9fa6
parent 80c6b665d00e345e176d190d1c3c1301ce4b0c9f
4 files changed +44 -3
modified libpkg/Makefile
@@ -13,6 +13,7 @@ SRCS= pkg.c \
		pkg_file.c \
		pkg_manifest.c \
		pkg_version.c \
+
		pkg_exec.c \
		util.c

CFLAGS+=	-std=c99
modified libpkg/pkg.h
@@ -4,6 +4,8 @@
struct pkg;
struct pkg_file;
struct pkg_conflict;
+
struct pkg_exec;
+
struct pkg_script;

struct pkgdb;
struct pkgdb_it;
@@ -33,6 +35,22 @@ typedef enum {
	PKG_MESSAGE
} pkg_attr;

+
typedef enum {
+
	PKG_SCRIPT_INSTALL = 0,
+
	PKG_SCRIPT_DEINSTALL,
+
	PKG_SCRIPT_UPGRADE
+
} pkg_script_t;
+

+
typedef enum {
+
	PKG_PRE = 0,
+
	PKG_POST,
+
	PKG_BOTH
+
} pkg_when_t;
+

+
typedef enum {
+
	PKG_EXEC = 0,
+
	PKG_UNEXEC
+
} pkg_exec_t;

/* pkg */
int pkg_new(struct pkg **);
@@ -70,6 +88,17 @@ void pkg_conflict_reset(struct pkg_conflict *);
void pkg_conflict_free(struct pkg_conflict *);
const char * pkg_conflict_glob(struct pkg_conflict *);

+
/* pkg_exec */
+
int pkg_script_new(struct pkg_script **);
+
void pkg_script_reset(struct pkg_script *);
+
void pkg_script_free(struct pkg_script *);
+
const char *pkg_script_data(struct pkg_script *);
+

+
int pkg_exec_new(struct pkg_exec **);
+
void pkg_exec_reset(struct pkg_exec *);
+
void pkg_exec_free(struct pkg_exec *);
+
const char *pkg_exec_cmd(struct pkg_exec *);
+

/* pkgdb */
int pkgdb_open(struct pkgdb **);
void pkgdb_close(struct pkgdb *);
modified libpkg/pkg_private.h
@@ -26,6 +26,17 @@ struct pkg_conflict {
	struct sbuf *glob;
};

+
struct pkg_script {
+
	struct sbuf *data;
+
	pkg_script_t type;
+
	pkg_when_t when;
+
};
+

+
struct pkg_exec {
+
	struct sbuf *cmd;
+
	pkg_exec_t type;
+
};
+

struct pkg_file {
	char path[MAXPATHLEN];
	char sha256[65];
modified libpkg/pkgdb.c
@@ -94,9 +94,9 @@ pkgdb_get_dir(void)
 * - 2: UPGRADE
 * 
 * scripts.when can be:
-
 * - 0: BOTH (old compat)
-
 * - 1: PRE
-
 * - 2: POST
+
 * - 0: PRE
+
 * - 1: POST
+
 * - 2: BOTH (old compat)
 *
 * exec.type can be:
 * - 0: exec