Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Add setters to pkg api
Baptiste Daroussin committed 15 years ago
commit 28306f97d366ad047cb33883c61d1dd9d69ebf95
parent 2fb023c0ae3ab93a6ca163634b0770ce2f5ba28d
3 files changed +119 -7
modified libpkg/pkg.c
@@ -236,3 +236,112 @@ pkg_free_void(void *p)
	if (p != NULL)
		pkg_free((struct pkg*) p);
}
+

+
/* setters */
+
int
+
pkg_setname(struct pkg *pkg, const char *name)
+
{
+
	if (name == NULL)
+
		return (-1);
+

+
	if (sbuf_done(pkg->name) != 0)
+
		sbuf_clear(pkg->name);
+

+
	sbuf_cat(pkg->name, name);
+
	sbuf_finish(pkg->name);
+

+
	return (0);
+
}
+

+
int
+
pkg_setversion(struct pkg *pkg, const char *version)
+
{
+
	if (version == NULL)
+
		return (-1);
+

+
	if (sbuf_done(pkg->version) != 0)
+
		sbuf_clear(pkg->version);
+

+
	sbuf_cat(pkg->version, version);
+
	sbuf_finish(pkg->version);
+

+
	return (0);
+
}
+

+
int
+
pkg_setcomment(struct pkg *pkg, const char *comment)
+
{
+
	if (comment == NULL)
+
		return (-1);
+

+
	if (sbuf_done(pkg->comment) != 0)
+
		sbuf_clear(pkg->comment);
+

+
	sbuf_cat(pkg->comment, comment);
+
	sbuf_finish(pkg->comment);
+

+
	return (0);
+
}
+

+
int
+
pkg_setdesc(struct pkg *pkg, const char *desc)
+
{
+
	if (desc == NULL)
+
		return (-1);
+

+
	if (sbuf_done(pkg->desc) != 0)
+
		sbuf_clear(pkg->desc);
+

+
	sbuf_cat(pkg->desc, desc);
+
	sbuf_finish(pkg->desc);
+

+
	return (0);
+
}
+

+
int
+
pkg_adddep(struct pkg *pkg, struct pkg *dep)
+
{
+
	if (dep == NULL)
+
		return (-1);
+

+
	array_init(&pkg->deps, 5);
+
	array_append(&pkg->deps, dep);
+

+
	return (0);
+
}
+

+
int
+
pkg_addfile(struct pkg *pkg, const char *path, const char *md5)
+
{
+
	struct pkg_file *file;
+
	if (path == NULL || md5 == NULL)
+
		return (-1);
+

+
	pkg_file_new(&file);
+

+
	strlcpy(file->path, path, sizeof(file->path));
+
	strlcpy(file->md5, md5, sizeof(file->md5));
+

+
	array_init(&pkg->files, 10);
+
	array_append(&pkg->files, file);
+

+
	return (0);
+
}
+

+
int
+
pkg_addconflict(struct pkg *pkg, const char *glob)
+
{
+
	struct pkg_conflict *conflict;
+

+
	if (glob == NULL)
+
		return (-1);
+

+
	pkg_conflict_new(&conflict);
+
	sbuf_cat(conflict->glob, glob);
+
	sbuf_finish(conflict->glob);
+

+
	array_init(&pkg->conflicts, 5);
+
	array_append(&pkg->conflicts, conflict);
+

+
	return (0);
+
}
modified libpkg/pkg.h
@@ -41,6 +41,15 @@ struct pkg_conflict ** pkg_conflicts(struct pkg *);
int pkg_numdeps(struct pkg *);
int pkg_resolvdeps(struct pkg *, struct pkgdb *db);

+
/* pkg setters */
+
int pkg_setname(struct pkg *, const char *);
+
int pkg_setversion(struct pkg *, const char *);
+
int pkg_setcomment(struct pkg *, const char *);
+
int pkg_setdesc(struct pkg *, const char *);
+
int pkg_adddep(struct pkg *, struct pkg *);
+
int pkg_addfile(struct pkg *, const char *, const char *);
+
int pkg_addconflict(struct pkg *, const char *);
+

/* pkg_manifest */
int pkg_parse_manifest(struct pkg *, char *);

modified pkg/register.c
@@ -1,9 +1,8 @@
-
#include <sys/param.h>
-

#include <err.h>
#include <stdio.h>
#include <pkg.h>
#include <string.h>
+
#include <sys/param.h>
#include <unistd.h>

#include "register.h"
@@ -22,9 +21,6 @@ cmd_register(int argc, char **argv)
	char *origin = NULL;
	char *depends = NULL;

-
(void)pkg;
-
(void)flattenedplist;
-

	while ((ch = getopt(argc, argv, "vc:d:f:p:P:m:o:O:")) != -1) {
		switch (ch) {
			case 'O':
@@ -55,6 +51,4 @@ cmd_register(int argc, char **argv)
		}
	}
	printf("%s\n", comment);
-

-
	return (0);
}