src/main.c
changeset 258 29d5002bd17f
parent 247 63444a10fb8e
child 259 5b0601d184ed
     1.1 --- a/src/main.c	Fri Jun 20 14:18:52 2008 -0400
     1.2 +++ b/src/main.c	Fri Jun 20 19:04:47 2008 -0400
     1.3 @@ -150,6 +150,7 @@
     1.4  	struct razor_set *set;
     1.5  
     1.6  	set = razor_set_open(repo_filename);
     1.7 +	razor_set_open_files(set, "system-files.repo");
     1.8  	if (set == NULL)
     1.9  		return 1;
    1.10  	razor_set_list_files(set, argv[0]);
    1.11 @@ -167,6 +168,7 @@
    1.12  	const char *name, *version, *arch;
    1.13  
    1.14  	set = razor_set_open(repo_filename);
    1.15 +	razor_set_open_files(set, "system-files.repo");
    1.16  	if (set == NULL)
    1.17  		return 1;
    1.18  
    1.19 @@ -187,6 +189,7 @@
    1.20  	struct razor_set *set;
    1.21  
    1.22  	set = razor_set_open(repo_filename);
    1.23 +	razor_set_open_files(set, "system-files.repo");
    1.24  	if (set == NULL)
    1.25  		return 1;
    1.26  	razor_set_list_package_files(set, argv[0]);
    1.27 @@ -351,7 +354,9 @@
    1.28  	set = razor_set_create_from_yum();
    1.29  	if (set == NULL)
    1.30  		return 1;
    1.31 -	razor_set_write(set, rawhide_repo_filename);
    1.32 +	razor_set_write(set, rawhide_repo_filename, RAZOR_REPO_FILE_MAIN);
    1.33 +	razor_set_write(set, "rawhide-details.repo", RAZOR_REPO_FILE_DETAILS);
    1.34 +	razor_set_write(set, "rawhide-files.repo", RAZOR_REPO_FILE_FILES);
    1.35  	razor_set_destroy(set);
    1.36  	printf("wrote %s\n", rawhide_repo_filename);
    1.37  
    1.38 @@ -366,7 +371,9 @@
    1.39  	set = razor_set_create_from_rpmdb();
    1.40  	if (set == NULL)
    1.41  		return 1;
    1.42 -	razor_set_write(set, repo_filename);
    1.43 +	razor_set_write(set, repo_filename, RAZOR_REPO_FILE_MAIN);
    1.44 +	razor_set_write(set, "system-details.repo", RAZOR_REPO_FILE_DETAILS);
    1.45 +	razor_set_write(set, "system-files.repo", RAZOR_REPO_FILE_FILES);
    1.46  	razor_set_destroy(set);
    1.47  	printf("wrote %s\n", repo_filename);
    1.48  
    1.49 @@ -444,7 +451,7 @@
    1.50  		return 1;
    1.51  
    1.52  	set = razor_transaction_finish(trans);
    1.53 -	razor_set_write(set, updated_repo_filename);
    1.54 +	razor_set_write(set, updated_repo_filename, RAZOR_REPO_FILE_MAIN);
    1.55  	razor_set_destroy(set);
    1.56  	razor_set_destroy(upstream);
    1.57  	printf("wrote system-updated.repo\n");
    1.58 @@ -477,7 +484,7 @@
    1.59  		return 1;
    1.60  
    1.61  	set = razor_transaction_finish(trans);
    1.62 -	razor_set_write(set, updated_repo_filename);
    1.63 +	razor_set_write(set, updated_repo_filename, RAZOR_REPO_FILE_MAIN);
    1.64  	razor_set_destroy(set);
    1.65  	razor_set_destroy(upstream);
    1.66  	printf("wrote system-updated.repo\n");
    1.67 @@ -565,7 +572,7 @@
    1.68  
    1.69  	set = razor_importer_finish(importer);
    1.70  
    1.71 -	razor_set_write(set, repo_filename);
    1.72 +	razor_set_write(set, repo_filename, RAZOR_REPO_FILE_MAIN);
    1.73  	razor_set_destroy(set);
    1.74  	printf("wrote %s\n", repo_filename);
    1.75  
    1.76 @@ -750,6 +757,42 @@
    1.77  	return 0;
    1.78  }
    1.79  
    1.80 +static int
    1.81 +command_info(int argc, const char *argv[])
    1.82 +{
    1.83 +	struct razor_set *set;
    1.84 +	struct razor_package_iterator *pi;
    1.85 +	struct razor_package *package;
    1.86 +	const char *pattern = argv[0], *name, *version, *arch;
    1.87 +	const char *summary, *description, *url, *license;
    1.88 +
    1.89 +	set = razor_set_open(repo_filename);
    1.90 +	razor_set_open_details(set, "system-details.repo");
    1.91 +	pi = razor_package_iterator_create(set);
    1.92 +	while (razor_package_iterator_next(pi, &package,
    1.93 +					   &name, &version, &arch)) {
    1.94 +		if (pattern && fnmatch(pattern, name, 0) != 0)
    1.95 +			continue;
    1.96 +
    1.97 +		razor_package_get_details (set, package, &summary, &description,
    1.98 +					   &url, &license);
    1.99 +
   1.100 +		printf ("Name:        %s\n", name);
   1.101 +		printf ("Arch:        %s\n", arch);
   1.102 +		printf ("Version:     %s\n", version);
   1.103 +		printf ("URL:         %s\n", url);
   1.104 +		printf ("License:     %s\n", license);
   1.105 +		printf ("Summary:     %s\n", summary);
   1.106 +		printf ("Description:\n");
   1.107 +		printf ("%s\n", description);
   1.108 +		printf ("\n");
   1.109 +	}
   1.110 +	razor_package_iterator_destroy(pi);
   1.111 +	razor_set_destroy(set);
   1.112 +
   1.113 +	return 0;
   1.114 +}
   1.115 +
   1.116  static struct {
   1.117  	const char *name;
   1.118  	const char *description;
   1.119 @@ -773,7 +816,8 @@
   1.120  	{ "diff", "show diff between two package sets", command_diff },
   1.121  	{ "install", "install rpm", command_install },
   1.122  	{ "init", "init razor root", command_init },
   1.123 -	{ "download", "download packages", command_download }
   1.124 +	{ "download", "download packages", command_download },
   1.125 +	{ "info", "display package details", command_info }
   1.126  };
   1.127  
   1.128  static int