Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add pkg set
Baptiste Daroussin committed 14 years ago
commit e98206c0363c8e084e92ac92b7c2d40015ef5396
parent e198866
5 files changed +30 -21
modified libpkg/pkgdb.c
@@ -2701,6 +2701,7 @@ pkgdb_vset(struct pkgdb *db, int64_t id, va_list ap)
{
	int attr;
	char sql[BUFSIZ];
+
	int automatic;

	while ((attr = va_arg(ap, int)) > 0) {
		switch (attr) {
@@ -2710,15 +2711,12 @@ pkgdb_vset(struct pkgdb *db, int64_t id, va_list ap)
				sql_exec(db->sqlite, sql);
				break;
			case PKG_AUTOMATIC:
-
				if (va_arg(ap, int) == 0) {
-
					snprintf(sql, BUFSIZ, "update packages set automatic=0 where id=%"PRId64";", id);
-
					sql_exec(db->sqlite, sql);
-
					break;
-
				} else if (va_arg(ap, int) == 1) {
-
					snprintf(sql, BUFSIZ, "update packages set automatic=1 where id=%"PRId64";", id);
-
					sql_exec(db->sqlite, sql);
-
					break;
-
				}
+
				automatic = va_arg(ap, int);
+
				if (automatic != 0 && automatic != 1)
+
					continue;
+
				snprintf(sql, BUFSIZ, "update packages set automatic=%d where id=%"PRId64";", automatic, id);
+
				sql_exec(db->sqlite, sql);
+
				break;
		}
	}
	return (EPKG_OK);
modified pkg/Makefile
@@ -18,6 +18,7 @@ SRCS= add.c \
		update.c \
		upgrade.c \
		search.c \
+
		set.c \
		updating.c \
		utils.c \
		version.c \
modified pkg/main.c
@@ -42,6 +42,7 @@ static struct commands {
	{ "install", "Installs packages from remote package repositories", exec_install, usage_install},
	{ "query", "Query information for installed packages", exec_query, usage_query},
	{ "search", "Performs a search in remote package repositories", exec_search, usage_search},
+
	{ "set", "Modify local database informations", exec_set, usage_set},
	{ "register", "Registers a package into the local package database", exec_register, usage_register},
	{ "repo", "Creates a package database repository", exec_repo, usage_repo},
	{ "update", "Updates remote package repository databases", exec_update, usage_update},
modified pkg/pkgcli.h
@@ -54,6 +54,10 @@ int exec_register(int argc, char **argv);
int exec_repo(int, char **);
void usage_repo(void);

+
/* pkg set */
+
int exec_set(int, char **);
+
void usage_set(void);
+

/* pkg search */
int exec_search(int, char **);
void usage_search(void);
@@ -103,7 +107,7 @@ void usage_which(void);
#define INFO_FULL (1<<9)
#define INFO_RAW (1<<10)

-
bool query_yesno(const char *msg);
+
bool query_yesno(const char *msg, ...);
int print_info(struct pkg * const pkg, unsigned int opt);
char *absolutepath(const char *src, char *dest, size_t dest_len);

modified pkg/utils.c
@@ -6,28 +6,33 @@
#include <libutil.h>
#include <string.h>
#include <unistd.h>
+
#include <stdarg.h>
#include <pkg.h>

#include "pkgcli.h"

bool
-
query_yesno(const char *msg)
+
query_yesno(const char *msg, ...)
{
-
        int c;
+
	int c;
	bool r = false;
+
	va_list ap;

-
        printf("%s", msg);
+
	va_start(ap, msg);
+
	vprintf(msg, ap);
+
	va_end(ap);

-
        c = getchar();
-
        if (c == 'y' || c == 'Y')
-
                r = true;
-
        else if (c == '\n' || c == EOF)
-
                return false;

-
        while((c = getchar()) != '\n' && c != EOF)
-
                continue;
+
	c = getchar();
+
	if (c == 'y' || c == 'Y')
+
		r = true;
+
	else if (c == '\n' || c == EOF)
+
		return false;

-
        return r;
+
	while((c = getchar()) != '\n' && c != EOF)
+
		continue;
+

+
	return r;
}

char *