Exemple #1
0
static int
command_list_package_files(int argc, const char *argv[])
{
	struct razor_set *set;
	struct razor_package_iterator *pi;
	struct razor_package *package;
	const char *name, *version, *arch;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	pi = create_iterator_from_argv(set, argc, argv);
	while (razor_package_iterator_next(pi, &package,
					   RAZOR_DETAIL_NAME, &name,
					   RAZOR_DETAIL_VERSION, &version,
					   RAZOR_DETAIL_ARCH, &arch,
					   RAZOR_DETAIL_LAST))
		razor_set_list_package_files(set, package);
	razor_package_iterator_destroy(pi);

	razor_set_destroy(set);

	return 0;
}
Exemple #2
0
static int
command_remove(int argc, const char *argv[])
{
	struct razor_set *set, *upstream;
	struct razor_transaction *trans;
	int i, errors;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	upstream = razor_set_create();
	trans = razor_transaction_create(set, upstream);
	for (i = 0; i < argc; i++) {
		if (mark_packages_for_removal(trans, set, argv[i]) == 0) {
			fprintf(stderr, "no match for %s\n", argv[i]);
			return 1;
		}
	}

	errors = razor_transaction_resolve(trans);
	if (errors)
		return 1;

	set = razor_transaction_finish(trans);
	razor_set_write(set, updated_repo_filename, RAZOR_REPO_FILE_MAIN);
	razor_set_destroy(set);
	razor_set_destroy(upstream);
	printf("wrote system-updated.rzdb\n");

	return 0;
}
static int
command_list_files(int argc, const char *argv[])
{
	struct razor_set *set;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	razor_set_list_files(set, argv[0]);
	razor_set_destroy(set);

	return 0;
}
Exemple #4
0
static int
command_diff(int argc, const char *argv[])
{
	struct razor_set *set, *updated;

	set = razor_root_open_read_only(install_root);
	updated = razor_set_open(updated_repo_filename);
	if (set == NULL || updated == NULL)
		return 1;

	razor_set_diff(set, updated, print_diff, NULL);

	razor_set_destroy(set);
	razor_set_destroy(updated);

	return 0;
}
Exemple #5
0
static int
command_list_file_packages(int argc, const char *argv[])
{
	struct razor_set *set;
	struct razor_package_iterator *pi;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	pi = razor_package_iterator_create_for_file(set, argv[0]);
	list_packages(pi, 0);
	razor_package_iterator_destroy(pi);

	razor_set_destroy(set);

	return 0;
}
Exemple #6
0
static int
command_info(int argc, const char *argv[])
{
	struct razor_set *set;
	struct razor_package_iterator *pi;
	struct razor_package *package;
	const char *pattern = argv[0], *name, *version, *arch;
	const char *summary, *description, *url, *license;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	pi = razor_package_iterator_create(set);
	while (razor_package_iterator_next(pi, &package,
					   RAZOR_DETAIL_NAME, &name,
					   RAZOR_DETAIL_VERSION, &version,
					   RAZOR_DETAIL_ARCH, &arch,
					   RAZOR_DETAIL_LAST)) {
		if (pattern && fnmatch(pattern, name, 0) != 0)
			continue;

		razor_package_get_details (set, package,
					   RAZOR_DETAIL_SUMMARY, &summary,
					   RAZOR_DETAIL_DESCRIPTION, &description,
					   RAZOR_DETAIL_URL, &url,
					   RAZOR_DETAIL_LICENSE, &license,
					   RAZOR_DETAIL_LAST);

		printf ("Name:        %s\n", name);
		printf ("Arch:        %s\n", arch);
		printf ("Version:     %s\n", version);
		printf ("URL:         %s\n", url);
		printf ("License:     %s\n", license);
		printf ("Summary:     %s\n", summary);
		printf ("Description:\n");
		printf ("%s\n", description);
		printf ("\n");
	}
	razor_package_iterator_destroy(pi);
	razor_set_destroy(set);

	return 0;
}
Exemple #7
0
static int
list_property_packages(const char *ref_name,
		       const char *ref_version,
		       uint32_t type)
{
	struct razor_set *set;
	struct razor_property *property;
	struct razor_property_iterator *prop_iter;
	struct razor_package_iterator *pkg_iter;
	const char *name, *version;
	uint32_t flags;

	if (ref_name == NULL)
		return 0;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	prop_iter = razor_property_iterator_create(set, NULL);
	while (razor_property_iterator_next(prop_iter, &property,
					    &name, &flags, &version)) {
		if (strcmp(ref_name, name) != 0)
			continue;
		if (ref_version &&
		    (flags & RAZOR_PROPERTY_RELATION_MASK) == RAZOR_PROPERTY_EQUAL &&
		    strcmp(ref_version, version) != 0)
			continue;
		if ((flags & RAZOR_PROPERTY_TYPE_MASK) != type)
			continue;

		pkg_iter =
			razor_package_iterator_create_for_property(set,
								   property);
		list_packages(pkg_iter, 0);
		razor_package_iterator_destroy(pkg_iter);
	}
	razor_property_iterator_destroy(prop_iter);

	razor_set_destroy(set);

	return 0;
}
Exemple #8
0
static int
command_update(int argc, const char *argv[])
{
	struct razor_set *set, *upstream;
	struct razor_transaction *trans;
	int i, errors;

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	upstream = razor_set_open(rawhide_repo_filename);
	if (upstream == NULL ||
	    razor_set_open_details(upstream, "rawhide-details.rzdb") ||
	    razor_set_open_files(upstream, "rawhide-files.rzdb"))
		return 1;

	trans = razor_transaction_create(set, upstream);
	if (argc == 0)
		razor_transaction_update_all(trans);
	for (i = 0; i < argc; i++) {
		if (mark_packages_for_update(trans, set, argv[i]) == 0) {
			fprintf(stderr, "no match for %s\n", argv[i]);
			return 1;
		}
	}

	razor_transaction_resolve(trans);
	errors = razor_transaction_describe(trans);
	if (errors) {
		fprintf(stderr, "unresolved dependencies\n");
		return 1;
	}

	set = razor_transaction_finish(trans);
	razor_set_write(set, updated_repo_filename, RAZOR_REPO_FILE_MAIN);
	razor_set_destroy(set);
	razor_set_destroy(upstream);
	printf("wrote system-updated.rzdb\n");

	return 0;
}
Exemple #9
0
static int
command_list(int argc, const char *argv[])
{
	struct razor_package_iterator *pi;
	struct razor_set *set;
	uint32_t flags = 0;
	int i = 0;

	if (i < argc && strcmp(argv[i], "--only-names") == 0) {
		flags |= LIST_PACKAGES_ONLY_NAMES;
		i++;
	}

	set = razor_root_open_read_only(install_root);
	if (set == NULL)
		return 1;

	pi = create_iterator_from_argv(set, argc - i, argv + i);
	list_packages(pi, flags);
	razor_package_iterator_destroy(pi);
	razor_set_destroy(set);

	return 0;
}