From 2fdb3fc0b67757afd6fe7a244b6e14d2a546af0e Mon Sep 17 00:00:00 2001 From: graham.gower Date: Tue, 08 Dec 2009 20:20:03 -0500 Subject: Merge commit 'grg' into HEAD git-svn-id: http://opkg.googlecode.com/svn/trunk@471 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/libopkg.c') diff --git a/libopkg/libopkg.c b/libopkg/libopkg.c index 3121984..f6fc251 100644 --- a/libopkg/libopkg.c +++ b/libopkg/libopkg.c @@ -24,39 +24,32 @@ #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; } -- cgit v0.9.1