Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a compact booelan to the manifest emitter.
Baptiste Daroussin committed 13 years ago
commit 03580225786d047ab26fabdb3304cbff3f1fbb95
parent 851bb57
4 files changed +63 -61
modified libpkg/pkg.h.in
@@ -760,7 +760,7 @@ int pkg_load_manifest_file(struct pkg *pkg, const char *fpath);
 * manifest. To be free'ed.
 * @return An error code.
 */
-
int pkg_emit_manifest(struct pkg *pkg, char **buf);
+
int pkg_emit_manifest(struct pkg *pkg, char **buf, bool compact);

/* pkg_dep */
const char *pkg_dep_get(struct pkg_dep const * const , const pkg_dep_attr);
modified libpkg/pkg_create.c
@@ -103,7 +103,7 @@ pkg_create_from_dir(struct pkg *pkg, const char *root,
	} else {
		pkg_register_shlibs(pkg);

-
		pkg_emit_manifest(pkg, &m);
+
		pkg_emit_manifest(pkg, &m, false);
		packing_append_buffer(pkg_archive, m, "+MANIFEST", strlen(m));
		free(m);
	}
modified libpkg/pkg_manifest.c
@@ -720,7 +720,7 @@ manifest_append_seqval(yaml_document_t *doc, int parent, int *seq,
	    strlen(name), YAML_##style##_SCALAR_STYLE)

int
-
pkg_emit_manifest(struct pkg *pkg, char **dest)
+
pkg_emit_manifest(struct pkg *pkg, char **dest, bool compact)
{
	yaml_emitter_t emitter;
	yaml_document_t doc;
@@ -850,70 +850,72 @@ pkg_emit_manifest(struct pkg *pkg, char **dest)
		    pkg_option_value(option), PLAIN);
	}

-
	map = -1;
-
	while (pkg_files(pkg, &file) == EPKG_OK) {
-
		const char *pkg_sum = pkg_file_cksum(file);
+
	if (!compact) {
+
		map = -1;
+
		while (pkg_files(pkg, &file) == EPKG_OK) {
+
			const char *pkg_sum = pkg_file_cksum(file);

-
		if (pkg_sum == NULL || pkg_sum[0] == '\0')
-
			pkg_sum = "-";
+
			if (pkg_sum == NULL || pkg_sum[0] == '\0')
+
				pkg_sum = "-";

-
		if (map == -1)
-
			manifest_append_map(map, mapping, "files", BLOCK);
-
		urlencode(pkg_file_path(file), &tmpsbuf);
-
		manifest_append_kv(map, sbuf_get(tmpsbuf), pkg_sum, PLAIN);
-
	}
+
			if (map == -1)
+
				manifest_append_map(map, mapping, "files", BLOCK);
+
			urlencode(pkg_file_path(file), &tmpsbuf);
+
			manifest_append_kv(map, sbuf_get(tmpsbuf), pkg_sum, PLAIN);
+
		}

-
	seq = -1;
-
	map = -1;
-
	while (pkg_dirs(pkg, &dir) == EPKG_OK) {
-
		const char *try_str;
-
		if (map == -1)
-
			manifest_append_map(map, mapping, "directories", BLOCK);
-
		urlencode(pkg_dir_path(dir), &tmpsbuf);
-
		try_str = pkg_dir_try(dir) ? "y" : "n";
-
		manifest_append_kv(map, sbuf_get(tmpsbuf), try_str, PLAIN);
-
	}
+
		seq = -1;
+
		map = -1;
+
		while (pkg_dirs(pkg, &dir) == EPKG_OK) {
+
			const char *try_str;
+
			if (map == -1)
+
				manifest_append_map(map, mapping, "directories", BLOCK);
+
			urlencode(pkg_dir_path(dir), &tmpsbuf);
+
			try_str = pkg_dir_try(dir) ? "y" : "n";
+
			manifest_append_kv(map, sbuf_get(tmpsbuf), try_str, PLAIN);
+
		}

-
	map = -1;
-
	for (i = 0; i < PKG_NUM_SCRIPTS; i++) {
-
		if (map == -1)
-
			manifest_append_map(map, mapping, "scripts", BLOCK);
+
		map = -1;
+
		for (i = 0; i < PKG_NUM_SCRIPTS; i++) {
+
			if (map == -1)
+
				manifest_append_map(map, mapping, "scripts", BLOCK);

-
		if (pkg_script_get(pkg, i) == NULL)
-
			continue;
+
			if (pkg_script_get(pkg, i) == NULL)
+
				continue;

-
		switch (i) {
-
		case PKG_SCRIPT_PRE_INSTALL:
-
			script_types = "pre-install";
-
			break;
-
		case PKG_SCRIPT_INSTALL:
-
			script_types = "install";
-
			break;
-
		case PKG_SCRIPT_POST_INSTALL:
-
			script_types = "post-install";
-
			break;
-
		case PKG_SCRIPT_PRE_UPGRADE:
-
			script_types = "pre-upgrade";
-
			break;
-
		case PKG_SCRIPT_UPGRADE:
-
			script_types = "upgrade";
-
			break;
-
		case PKG_SCRIPT_POST_UPGRADE:
-
			script_types = "post-upgrade";
-
			break;
-
		case PKG_SCRIPT_PRE_DEINSTALL:
-
			script_types = "pre-deinstall";
-
			break;
-
		case PKG_SCRIPT_DEINSTALL:
-
			script_types = "deinstall";
-
			break;
-
		case PKG_SCRIPT_POST_DEINSTALL:
-
			script_types = "post-deinstall";
-
			break;
+
			switch (i) {
+
			case PKG_SCRIPT_PRE_INSTALL:
+
				script_types = "pre-install";
+
				break;
+
			case PKG_SCRIPT_INSTALL:
+
				script_types = "install";
+
				break;
+
			case PKG_SCRIPT_POST_INSTALL:
+
				script_types = "post-install";
+
				break;
+
			case PKG_SCRIPT_PRE_UPGRADE:
+
				script_types = "pre-upgrade";
+
				break;
+
			case PKG_SCRIPT_UPGRADE:
+
				script_types = "upgrade";
+
				break;
+
			case PKG_SCRIPT_POST_UPGRADE:
+
				script_types = "post-upgrade";
+
				break;
+
			case PKG_SCRIPT_PRE_DEINSTALL:
+
				script_types = "pre-deinstall";
+
				break;
+
			case PKG_SCRIPT_DEINSTALL:
+
				script_types = "deinstall";
+
				break;
+
			case PKG_SCRIPT_POST_DEINSTALL:
+
				script_types = "post-deinstall";
+
				break;
+
			}
+
			urlencode(pkg_script_get(pkg, i), &tmpsbuf);
+
			manifest_append_kv(map, script_types, sbuf_get(tmpsbuf),
+
			    LITERAL);
		}
-
		urlencode(pkg_script_get(pkg, i), &tmpsbuf);
-
		manifest_append_kv(map, script_types, sbuf_get(tmpsbuf),
-
		    LITERAL);
	}
	if (infos != NULL && *infos != '\0') {
		urlencode(infos, &tmpsbuf);
modified pkg/utils.c
@@ -230,7 +230,7 @@ print_info(struct pkg * const pkg, unsigned int options)

	if (options & INFO_RAW) { /* Not for remote packages */
		if (pkg_type(pkg) != PKG_REMOTE) {
-
			pkg_emit_manifest(pkg, &m);
+
			pkg_emit_manifest(pkg, &m, false);
			printf("%s\n", m);
			free(m);
		}