Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
New DEVELOPER_MODE option
Baptiste Daroussin committed 14 years ago
commit ec0815a172305fd63309be3fc1b7de3d86557f47
parent c9dcf3e
5 files changed +22 -3
modified libpkg/pkg.h
@@ -250,6 +250,7 @@ typedef enum _pkg_config_key {
	PKG_CONFIG_AUTODEPS = 12,
	PKG_CONFIG_SIGNED_REPOS = 13,
	PKG_CONFIG_ABI = 14,
+
	PKG_CONFIG_DEVELOPER_MODE = 15,
} pkg_config_key;

typedef enum {
modified libpkg/pkg_config.c
@@ -151,6 +151,12 @@ static struct config_entry c[] = {
		"ABI",
		myabi,
		{ NULL }
+
	},
+
	[PKG_CONFIG_DEVELOPER_MODE] = {
+
		BOOL,
+
		"DEVELOPER_MODE",
+
		"NO",
+
		{ NULL }
	}
};

modified libpkg/pkg_create.c
@@ -46,7 +46,9 @@ pkg_create_from_dir(struct pkg *pkg, const char *root, struct packing *pkg_archi
	struct pkg_file *file = NULL;
	struct pkg_dir *dir = NULL;
	char *m;
+
	int ret;
	const char *mtree;
+
	bool developer;
	struct stat st;
	char sha256[SHA256_DIGEST_LENGTH * 2 + 1];

@@ -80,7 +82,10 @@ pkg_create_from_dir(struct pkg *pkg, const char *root, struct packing *pkg_archi
		else
			strlcpy(fpath, pkg_file_get(file, PKG_FILE_PATH), sizeof(fpath));

-
		packing_append_file_attr(pkg_archive, fpath, pkg_file_get(file, PKG_FILE_PATH), file->uname, file->gname, file->perm);
+
		ret = packing_append_file_attr(pkg_archive, fpath, pkg_file_get(file, PKG_FILE_PATH), file->uname, file->gname, file->perm);
+
		pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &developer);
+
		if (developer && ret != EPKG_OK)
+
			return (ret);
	}

	while (pkg_dirs(pkg, &dir) == EPKG_OK) {
@@ -89,7 +94,10 @@ pkg_create_from_dir(struct pkg *pkg, const char *root, struct packing *pkg_archi
		else
			strlcpy(fpath, pkg_dir_path(dir), sizeof(fpath));

-
		packing_append_file_attr(pkg_archive, fpath, pkg_dir_path(dir), dir->uname, dir->gname, dir->perm);
+
		ret = packing_append_file_attr(pkg_archive, fpath, pkg_dir_path(dir), dir->uname, dir->gname, dir->perm);
+
		pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &developer);
+
		if (developer && ret != EPKG_OK)
+
			return (ret);
	}

	return (EPKG_OK);
modified libpkg/pkg_ports.c
@@ -166,6 +166,7 @@ file(struct plist *p, char *line)
	struct stat st;
	char *buf;
	bool regular = false;
+
	bool developer;
	char sha256[SHA256_DIGEST_LENGTH * 2 + 1];

	len = strlen(line);
@@ -198,7 +199,8 @@ file(struct plist *p, char *line)
	}

	pkg_emit_errno("lstat", path);
-
	return (EPKG_OK);
+
	pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &developer);
+
	return (developer ? EPKG_FATAL : EPKG_OK);
}

static int
modified pkg/main.c
@@ -260,6 +260,8 @@ main(int argc, char **argv)
			printf("Automatic dependency tracking: %s\n", b ? "yes": "no");
			pkg_config_string(PKG_CONFIG_PLIST_KEYWORDS_DIR, &buf);
			printf("Custom keywords directory: %s\n", buf ? buf : "none");
+
			pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &b);
+
			printf("Developer mode: %s\n", b ? "yes" : "no");
		}
		pkg_config_bool(PKG_CONFIG_MULTIREPOS, &b);
		if (b) {