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;