src/main.c
changeset 317 019a53b65271
parent 316 5ebed314390c
child 320 53e1185e2366
     1.1 --- a/src/main.c	Tue Jul 08 22:02:58 2008 -0400
     1.2 +++ b/src/main.c	Tue Jul 08 22:57:34 2008 -0400
     1.3 @@ -37,7 +37,7 @@
     1.4  static const char next_repo_filename[] = "system-next.rzdb";
     1.5  static const char rawhide_repo_filename[] = "rawhide.rzdb";
     1.6  static const char updated_repo_filename[] = "system-updated.rzdb";
     1.7 -static const char install_root[] = "install";
     1.8 +static const char *install_root = "";
     1.9  static const char *repo_filename = system_repo_filename;
    1.10  static const char *yum_url;
    1.11  
    1.12 @@ -113,7 +113,10 @@
    1.13  		i++;
    1.14  	}
    1.15  
    1.16 -	set = razor_set_open(repo_filename);
    1.17 +	set = razor_root_open_read_only(install_root);
    1.18 +	if (set == NULL)
    1.19 +		return 1;
    1.20 +
    1.21  	pi = create_iterator_from_argv(set, argc - i, argv + i);
    1.22  	list_packages(pi, flags);
    1.23  	razor_package_iterator_destroy(pi);
    1.24 @@ -167,7 +170,10 @@
    1.25  	struct razor_package_iterator *pi;
    1.26  	const char *name, *version, *arch;
    1.27  
    1.28 -	set = razor_set_open(repo_filename);
    1.29 +	set = razor_root_open_read_only(install_root);
    1.30 +	if (set == NULL)
    1.31 +		return 1;
    1.32 +
    1.33  	pi = create_iterator_from_argv(set, argc, argv);
    1.34  	while (razor_package_iterator_next(pi, &package,
    1.35  					   RAZOR_DETAIL_NAME, &name,
    1.36 @@ -210,9 +216,10 @@
    1.37  {
    1.38  	struct razor_set *set;
    1.39  
    1.40 -	set = razor_set_open(repo_filename);
    1.41 +	set = razor_root_open_read_only(install_root);
    1.42  	if (set == NULL)
    1.43  		return 1;
    1.44 +
    1.45  	if (razor_set_open_files(set, "system-files.rzdb"))
    1.46  		return 1;
    1.47  
    1.48 @@ -228,11 +235,9 @@
    1.49  	struct razor_set *set;
    1.50  	struct razor_package_iterator *pi;
    1.51  
    1.52 -	set = razor_set_open(repo_filename);
    1.53 +	set = razor_root_open_read_only(install_root);
    1.54  	if (set == NULL)
    1.55  		return 1;
    1.56 -	if (razor_set_open_files(set, "system-files.rzdb"))
    1.57 -		return 1;
    1.58  
    1.59  	pi = razor_package_iterator_create_for_file(set, argv[0]);
    1.60  	list_packages(pi, 0);
    1.61 @@ -251,11 +256,9 @@
    1.62  	struct razor_package *package;
    1.63  	const char *name, *version, *arch;
    1.64  
    1.65 -	set = razor_set_open(repo_filename);
    1.66 +	set = razor_root_open_read_only(install_root);
    1.67  	if (set == NULL)
    1.68  		return 1;
    1.69 -	if (razor_set_open_files(set, "system-files.rzdb"))
    1.70 -		return 1;
    1.71  
    1.72  	pi = create_iterator_from_argv(set, argc, argv);
    1.73  	while (razor_package_iterator_next(pi, &package,
    1.74 @@ -286,7 +289,7 @@
    1.75  	if (ref_name == NULL)
    1.76  		return 0;
    1.77  
    1.78 -	set = razor_set_open(repo_filename);
    1.79 +	set = razor_root_open_read_only(install_root);
    1.80  	if (set == NULL)
    1.81  		return 1;
    1.82  
    1.83 @@ -310,6 +313,8 @@
    1.84  	}
    1.85  	razor_property_iterator_destroy(prop_iter);
    1.86  
    1.87 +	razor_set_destroy(set);
    1.88 +
    1.89  	return 0;
    1.90  }
    1.91  
    1.92 @@ -430,17 +435,19 @@
    1.93  command_import_rpmdb(int argc, const char *argv[])
    1.94  {
    1.95  	struct razor_set *set;
    1.96 +	struct razor_root *root;
    1.97 +
    1.98 +	root = razor_root_open(install_root);
    1.99 +	if (root == NULL)
   1.100 +		return 1;
   1.101  
   1.102  	set = razor_set_create_from_rpmdb();
   1.103  	if (set == NULL)
   1.104  		return 1;
   1.105 -	razor_set_write(set, repo_filename, RAZOR_REPO_FILE_MAIN);
   1.106 -	razor_set_write(set, "system-details.rzdb", RAZOR_REPO_FILE_DETAILS);
   1.107 -	razor_set_write(set, "system-files.rzdb", RAZOR_REPO_FILE_FILES);
   1.108 -	razor_set_destroy(set);
   1.109 -	printf("wrote %s\n", repo_filename);
   1.110  
   1.111 -	return 0;
   1.112 +	razor_root_update(root, set);
   1.113 +
   1.114 +	return razor_root_commit(root);
   1.115  }
   1.116  
   1.117  static int
   1.118 @@ -496,10 +503,8 @@
   1.119  	struct razor_transaction *trans;
   1.120  	int i, errors;
   1.121  
   1.122 -	set = razor_set_open(repo_filename);
   1.123 -	if (set == NULL ||
   1.124 -	    razor_set_open_details(set, "system-details.rzdb") ||
   1.125 -	    razor_set_open_files(set, "system-files.rzdb"))
   1.126 +	set = razor_root_open_read_only(install_root);
   1.127 +	if (set == NULL)
   1.128  		return 1;
   1.129  
   1.130  	upstream = razor_set_open(rawhide_repo_filename);
   1.131 @@ -541,7 +546,7 @@
   1.132  	struct razor_transaction *trans;
   1.133  	int i, errors;
   1.134  
   1.135 -	set = razor_set_open(repo_filename);
   1.136 +	set = razor_root_open_read_only(install_root);
   1.137  	if (set == NULL)
   1.138  		return 1;
   1.139  
   1.140 @@ -586,7 +591,7 @@
   1.141  {
   1.142  	struct razor_set *set, *updated;
   1.143  
   1.144 -	set = razor_set_open(repo_filename);
   1.145 +	set = razor_root_open_read_only(install_root);
   1.146  	updated = razor_set_open(updated_repo_filename);
   1.147  	if (set == NULL || updated == NULL)
   1.148  		return 1;
   1.149 @@ -896,11 +901,10 @@
   1.150  	const char *pattern = argv[0], *name, *version, *arch;
   1.151  	const char *summary, *description, *url, *license;
   1.152  
   1.153 -	set = razor_set_open(repo_filename);
   1.154 +	set = razor_root_open_read_only(install_root);
   1.155  	if (set == NULL)
   1.156  		return 1;
   1.157 -	if (razor_set_open_details(set, "system-details.rzdb"))
   1.158 -		return 1;
   1.159 +
   1.160  	pi = razor_package_iterator_create(set);
   1.161  	while (razor_package_iterator_next(pi, &package,
   1.162  					   RAZOR_DETAIL_NAME, &name,
   1.163 @@ -1025,13 +1029,17 @@
   1.164  int
   1.165  main(int argc, const char *argv[])
   1.166  {
   1.167 -	char *repo;
   1.168 +	char *repo, *root;
   1.169  	int i;
   1.170  
   1.171  	repo = getenv("RAZOR_REPO");
   1.172  	if (repo != NULL)
   1.173  		repo_filename = repo;
   1.174  
   1.175 +	root = getenv("RAZOR_ROOT");
   1.176 +	if (root != NULL)
   1.177 +		install_root = root;
   1.178 +
   1.179  	yum_url = getenv("YUM_URL");
   1.180  	if (yum_url == NULL)
   1.181  		yum_url = YUM_URL;