Merge commit 'grg' into HEAD
[oweals/opkg-lede.git] / libopkg / libopkg.c
index 312198407b0bc4475594c31179b0290a93f04e42..f6fc251426e1a0d40c6f5d44c6d1ea4d7361e37e 100644 (file)
 #include "file_util.h"
 
 #include "opkg_message.h"
-#include "opkg_error.h"
 
 /* This is used for backward compatibility */
 int
 opkg_op (int argc, char *argv[])
 {
-       int err, optind;
+       int err, opts;
        args_t args;
        char *cmd_name;
        opkg_cmd_t *cmd;
-       opkg_conf_t opkg_conf;
 
        args_init (&args);
 
-       optind = args_parse (&args, argc, argv);
-       if (optind == argc || optind < 0)
+       opts = args_parse (&args, argc, argv);
+       if (opts == argc || opts < 0)
        {
                args_usage ("opkg must have one sub-command argument");
        }
 
-       cmd_name = argv[optind++];
-/* Pigi: added a flag to disable the checking of structures if the command does not need to 
-         read anything from there.
-*/
+       cmd_name = argv[opts++];
+
         if ( !strcmp(cmd_name,"print-architecture") ||
              !strcmp(cmd_name,"print_architecture") ||
              !strcmp(cmd_name,"print-installation-architecture") ||
              !strcmp(cmd_name,"print_installation_architecture") )
            args.nocheckfordirorfile = 1;
 
-/* Pigi: added a flag to disable the reading of feed files  if the command does not need to 
-         read anything from there.
-*/
         if ( !strcmp(cmd_name,"flag") ||
              !strcmp(cmd_name,"configure") ||
              !strcmp(cmd_name,"remove") ||
@@ -69,8 +62,17 @@ opkg_op (int argc, char *argv[])
              !strcmp(cmd_name,"status") )
            args.noreadfeedsfile = 1;
 
+       cmd = opkg_cmd_find (cmd_name);
+       if (cmd == NULL)
+       {
+               fprintf (stderr, "%s: unknown sub-command %s\n", argv[0],
+                        cmd_name);
+               args_usage (NULL);
+       }
 
-       err = opkg_conf_init (&opkg_conf, &args);
+       conf->pfm = cmd->pfm;
+
+       err = opkg_conf_init (&args);
        args_deinit (&args);
        if (err)
        {
@@ -79,28 +81,20 @@ opkg_op (int argc, char *argv[])
                return err;
        }
 
-       cmd = opkg_cmd_find (cmd_name);
-       if (cmd == NULL)
-       {
-               fprintf (stderr, "%s: unknown sub-command %s\n", argv[0],
-                        cmd_name);
-               args_usage (NULL);
-       }
-
-       if (cmd->requires_args && optind == argc)
+       if (cmd->requires_args && opts == argc)
        {
                fprintf (stderr,
                         "%s: the ``%s'' command requires at least one argument\n",
-                        __FUNCTION__, cmd_name);
+                        argv[0], cmd_name);
                args_usage (NULL);
        }
 
-       err = opkg_cmd_exec (cmd, &opkg_conf, argc - optind, (const char **) (argv + optind), NULL);
+       err = opkg_cmd_exec (cmd, argc - opts, (const char **) (argv + opts));
 
 #ifdef HAVE_CURL
        opkg_curl_cleanup();
 #endif
-       opkg_conf_deinit (&opkg_conf);
+       opkg_conf_deinit ();
 
        return err;
 }