libopkg: support passing callbacks to feed parsing functions
[project/opkg-lede.git] / libopkg / opkg_cmd.c
index 7d5bd04a8d45f06c7f3a9ee064eb24581249c755..8de22f3ab06819b12434265e159a3fa1e08530e8 100644 (file)
@@ -458,7 +458,7 @@ static int opkg_install_cmd(int argc, char **argv)
        }
 
        pkg_hash_load_package_details();
-       pkg_hash_load_status_files();
+       pkg_hash_load_status_files(NULL, NULL);
 
        if (conf->force_reinstall) {
                int saved_force_depends = conf->force_depends;
@@ -1217,12 +1217,21 @@ static int opkg_search_cmd(int argc, char **argv)
 
 static int opkg_compare_versions_cmd(int argc, char **argv)
 {
+       int rc;
+       pkg_t *p1, *p2;
+
        if (argc == 3) {
                /* this is a bit gross */
-               struct pkg p1, p2;
-               parse_version(&p1, argv[0]);
-               parse_version(&p2, argv[2]);
-               return pkg_version_satisfied(&p1, &p2, argv[1]);
+               p1 = pkg_new();
+               p2 = pkg_new();
+               parse_version(p1, argv[0]);
+               parse_version(p2, argv[2]);
+               rc = pkg_version_satisfied(p1, p2, argv[1]);
+               pkg_deinit(p1);
+               pkg_deinit(p2);
+               free(p1);
+               free(p2);
+               return rc ? 0 : 1;
        } else {
                opkg_msg(ERROR,
                         "opkg compare_versions <v1> <op> <v2>\n"
@@ -1280,10 +1289,8 @@ static opkg_cmd_t cmds[] = {
        {"find", 1, (opkg_cmd_fun_t) opkg_find_cmd, PFM_SOURCE},
        {"download", 1, (opkg_cmd_fun_t) opkg_download_cmd,
         PFM_DESCRIPTION | PFM_SOURCE},
-       {"compare_versions", 1, (opkg_cmd_fun_t) opkg_compare_versions_cmd,
-        PFM_DESCRIPTION | PFM_SOURCE},
-       {"compare-versions", 1, (opkg_cmd_fun_t) opkg_compare_versions_cmd,
-        PFM_DESCRIPTION | PFM_SOURCE},
+       {"compare_versions", 1, (opkg_cmd_fun_t) opkg_compare_versions_cmd, 0},
+       {"compare-versions", 1, (opkg_cmd_fun_t) opkg_compare_versions_cmd, 0},
        {"print-architecture", 0, (opkg_cmd_fun_t) opkg_print_architecture_cmd,
         PFM_DESCRIPTION | PFM_SOURCE},
        {"print_architecture", 0, (opkg_cmd_fun_t) opkg_print_architecture_cmd,