Пример #1
0
TEST(database, list_packages){
  char* argz=0;
  size_t argz_len=0;
  TEST_ASSERT_EQUAL(SQLITE_ROW,list_packages(&argz,&argz_len,"Gcc"));
  char* entry=0;
  entry=argz_next(argz,argz_len,entry);
  TEST_ASSERT_EQUAL_STRING(package.name, entry);
  entry=argz_next(argz,argz_len,entry);
  TEST_ASSERT_EQUAL_STRING(package.description, entry);
  entry=argz_next(argz,argz_len,entry);
  TEST_ASSERT_EQUAL(package.version, parse_version(entry));

}
Пример #2
0
Файл: main.c Проект: clee/razor
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;
}
Пример #3
0
Файл: main.c Проект: clee/razor
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;
}
Пример #4
0
Файл: main.c Проект: clee/razor
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;
}
Пример #5
0
static int bee_dep_list(int argc, char *argv[])
{
    int c, i, opt_count, help, files, packages, count,
        depending_on, required_by, removable, provider_of,
        not_cached, broken;
    struct hash *graph;
    char *name;
    struct option long_options[] = {
        {"help",         0, &help,         1},
        {"files",        0, &files,        1},
        {"packages",     0, &packages,     1},
        {"count",        0, &count,        1},
        {"depending-on", 0, &depending_on, 1},
        {"required-by",  0, &required_by,  1},
        {"removable",    0, &removable,    1},
        {"provider-of",  0, &provider_of,  1},
        {"not-cached",   0, &not_cached,   1},
        {"broken",       0, &broken,       1},
        {0, 0, 0, 0}
    };

    opt_count = help         = files       = packages  = provider_of =
    count     = depending_on = required_by = removable = not_cached  =
    broken    = 0;

    while ((c = getopt_long(argc, argv, "", long_options, NULL)) != -1) {
        switch (c) {
            case '?':
                usage_list();
                return 1;

            default:
                opt_count++;
        }
    }

    if (help) {
        usage_list();
        return 0;
    }

    if (!opt_count && optind != argc) {
        fprintf(stderr, "bee-dep: too many arguments\n");
        return 1;
    }

    if (!opt_count)
        packages = 1;

    if (opt_count > 1 && !count) {
        fprintf(stderr, "bee-dep: too many options specified\n");
        return 1;
    }

    if (packages) {
        graph = get_cache();

        if (count)
            printf("%d\n", count_packages(graph));
        else
            list_packages(graph);

        hash_free(graph);
        return 0;
    }

    if (broken && optind < argc) {
        fprintf(stderr, "bee-dep: too many arguments\n");
        return 1;
    }

    if (optind == argc && !broken) {
        fprintf(stderr, "bee-dep: arguments needed\n");
        return 1;
    }

    if (count && (depending_on || required_by))
        fprintf(stderr, "bee-dep: ignoring option --count\n");

    graph = get_cache();

    for (i = optind; i < argc; i++) {
        name = argv[i];

        if (optind < argc - 1)
            printf("%s:\n", name);

        if (files) {
            if (count) {
                c = count_files(graph, name);

                if (c < 0) {
                    hash_free(graph);
                    return 1;
                }

                printf("%d\n", c);
            } else if (list_files(graph, name)) {
                 hash_free(graph);
                 return 1;
            }
        }

        if (removable) {
            if (count) {
                c = count_removable(graph, name);

                if (c < 0) {
                    hash_free(graph);
                    return 1;
                }

                printf("%d\n", c);
            } else if (print_removable(graph, name)) {
                hash_free(graph);
                return 1;
            }
        }

        if (depending_on && print_neededby(graph, name)) {
            hash_free(graph);
            return 1;
        }

        if (required_by && print_needs(graph, name)) {
            hash_free(graph);
            return 1;
        }

        if (provider_of) {
            if (count) {
                c = count_providers(graph, name);

                if (c < 0) {
                    hash_free(graph);
                    return 1;
                }

                printf("%d\n", c);
            } else if (print_providers(graph, name)) {
                hash_free(graph);
                return 1;
            }
        }

        if (not_cached) {
            c = print_not_cached(graph, name, !count);

            if (c < 0) {
                hash_free(graph);
                return 1;
            }

            if (count)
                printf("%d\n", c);
        }
    }

    if (broken) {
        c = print_broken(graph, !count);

        if (c < 0) {
            hash_free(graph);
            return 1;
        }

        if (count)
            printf("%d\n", c);
    }

    hash_free(graph);
    return 0;
}