rpm-razor.c
changeset 221 6db5f1ad7882
parent 220 1fcb5c23034a
child 222 052dce887a07
     1.1 --- a/rpm-razor.c	Wed Jun 04 20:53:17 2008 -0400
     1.2 +++ b/rpm-razor.c	Wed Jun 04 21:06:09 2008 -0400
     1.3 @@ -77,7 +77,7 @@
     1.4  	{ OPTION_BOOL, "nofiles", 0, NULL, "don't verify files in package", NULL },
     1.5  	{ OPTION_BOOL, "nodeps", 0, NULL, "don't verify package dependencies", NULL },
     1.6  	{ OPTION_BOOL, "noscript", 0, NULL, "don't execute verify script(s)", NULL, },
     1.7 -	{ OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", NULL },
     1.8 +	{ OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_al },
     1.9  	{ OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
    1.10  	{ OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
    1.11  	{ OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", NULL },
    1.12 @@ -460,7 +460,7 @@
    1.13  static void
    1.14  command_erase(int argc, const char *argv[])
    1.15  {
    1.16 -	struct razor_set *set;
    1.17 +	struct razor_set *set, *next;
    1.18  	struct razor_transaction *trans;
    1.19  	struct razor_package_query *query;
    1.20  	struct razor_package_iterator *pi;
    1.21 @@ -478,30 +478,52 @@
    1.22  
    1.23  	query = razor_package_query_create(set);
    1.24  	add_command_line_packages(set, query, argc, argv);
    1.25 +
    1.26  	pi = razor_package_query_finish(query);
    1.27 -
    1.28  	while (razor_package_iterator_next(pi, &package,
    1.29  					   &name, &version, &arch))
    1.30  		razor_transaction_remove_package(trans, package);
    1.31 -
    1.32  	razor_package_iterator_destroy(pi);
    1.33  
    1.34 -	set = razor_transaction_finish(trans);
    1.35 -	
    1.36 -	razor_set_list_unsatisfied(set);
    1.37 +	next = razor_transaction_finish(trans);
    1.38 +	razor_set_destroy(set);
    1.39  
    1.40 -	razor_set_destroy(set);
    1.41 +	razor_set_list_unsatisfied(next);
    1.42 +	razor_set_destroy(next);
    1.43  }
    1.44  
    1.45  static void
    1.46  command_install(int argc, const char *argv[])
    1.47  {
    1.48 +	struct razor_set *set, *upstream, *next;
    1.49 +	struct razor_transaction *trans;
    1.50 +	struct razor_package_iterator *pi;
    1.51 +	struct razor_package *package;
    1.52 +	const char *name, *version, *arch;
    1.53 +
    1.54  	if (argc == 0) {
    1.55  		printf("no packages given for install\n");
    1.56  		exit(1);
    1.57  	}
    1.58  
    1.59 -	printf("command install - not implemented\n");
    1.60 +	set = razor_set_open(repo_filename);
    1.61 +	upstream = create_set_from_command_line(argc, argv);
    1.62 +
    1.63 +	trans = razor_transaction_create(set, upstream);
    1.64 +
    1.65 +	pi = razor_package_iterator_create(upstream);
    1.66 +	while (razor_package_iterator_next(pi, &package,
    1.67 +					   &name, &version, &arch))
    1.68 +		razor_transaction_install_package(trans, package);
    1.69 +	razor_package_iterator_destroy(pi);
    1.70 +
    1.71 +	next = razor_transaction_finish(trans);
    1.72 +	razor_set_destroy(set);
    1.73 +	razor_set_destroy(upstream);
    1.74 +
    1.75 +	razor_set_list_unsatisfied(next);
    1.76 +
    1.77 +	razor_set_destroy(next);
    1.78  }
    1.79  
    1.80  static void