file_util: consolidate hex/unhex routines
[oweals/opkg-lede.git] / src / opkg-cl.c
index e2f10a11852eca066996f9b0416b96e59354d9a6..a3ea5c139aa2221c0075796ead72212c731a66a6 100644 (file)
    opkg command line frontend using libopkg
 */
 
-#include "config.h"
-
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <getopt.h>
+#include <fnmatch.h>
 
 #include "opkg_conf.h"
 #include "opkg_cmd.h"
@@ -52,6 +52,7 @@ enum {
        ARGS_OPT_AUTOREMOVE,
        ARGS_OPT_CACHE,
        ARGS_OPT_FORCE_SIGNATURE,
+       ARGS_OPT_NO_CHECK_CERTIFICATE,
        ARGS_OPT_SIZE,
 };
 
@@ -91,6 +92,8 @@ static struct option long_options[] = {
        {"force_checksum", 0, 0, ARGS_OPT_FORCE_CHECKSUM},
        {"force-signature", 0, 0, ARGS_OPT_FORCE_SIGNATURE},
        {"force_signature", 0, 0, ARGS_OPT_FORCE_SIGNATURE},
+       {"no-check-certificate", 0, 0, ARGS_OPT_NO_CHECK_CERTIFICATE},
+       {"no_check_certificate", 0, 0, ARGS_OPT_NO_CHECK_CERTIFICATE},
        {"noaction", 0, 0, ARGS_OPT_NOACTION},
        {"download-only", 0, 0, ARGS_OPT_DOWNLOAD_ONLY},
        {"nodeps", 0, 0, ARGS_OPT_NODEPS},
@@ -226,6 +229,9 @@ static int args_parse(int argc, char *argv[])
                case ARGS_OPT_FORCE_SIGNATURE:
                        conf->force_signature = 1;
                        break;
+               case ARGS_OPT_NO_CHECK_CERTIFICATE:
+                       conf->no_check_certificate = 1;
+                       break;
                case ':':
                        parse_err = -1;
                        break;
@@ -335,6 +341,7 @@ static void usage()
        printf
            ("\t--force-remove  Remove package even if prerm script fails\n");
        printf("\t--force-checksum      Don't fail on checksum mismatches\n");
+       printf("\t--no-check-certificate Don't validate SSL certificates\n");
        printf("\t--noaction            No action -- test only\n");
        printf("\t--download-only       No action -- download only\n");
        printf("\t--nodeps              Do not follow dependencies\n");
@@ -387,19 +394,21 @@ int main(int argc, char *argv[])
 
        cmd_name = argv[opts++];
 
-       if (!strcmp(cmd_name, "print-architecture") ||
+       if (!strcmp(cmd_name, "install") ||
+           !strcmp(cmd_name, "print-architecture") ||
            !strcmp(cmd_name, "print_architecture") ||
            !strcmp(cmd_name, "print-installation-architecture") ||
-           !strcmp(cmd_name, "print_installation_architecture"))
+           !strcmp(cmd_name, "print_installation_architecture") ||
+           !strcmp(cmd_name, "compare_versions") ||
+           !strcmp(cmd_name, "compare-versions"))
                nocheckfordirorfile = 1;
 
        if (!strcmp(cmd_name, "flag") ||
            !strcmp(cmd_name, "configure") ||
+           !strcmp(cmd_name, "install") ||
            !strcmp(cmd_name, "remove") ||
            !strcmp(cmd_name, "files") ||
            !strcmp(cmd_name, "search") ||
-           !strcmp(cmd_name, "compare_versions") ||
-           !strcmp(cmd_name, "compare-versions") ||
            !strcmp(cmd_name, "list_installed") ||
            !strcmp(cmd_name, "list-installed") ||
            !strcmp(cmd_name, "list_changed_conffiles") ||
@@ -438,9 +447,6 @@ int main(int argc, char *argv[])
 
        err = opkg_cmd_exec(cmd, argc - opts, (const char **)(argv + opts));
 
-#ifdef HAVE_CURL
-       opkg_curl_cleanup();
-#endif
 err1:
        opkg_conf_deinit();