1 /* opkglib.c - the opkg package management system
5 Copyright (C) 2003 kernel concepts
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2, or (at
10 your option) any later version.
12 This program is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
20 #include "opkg_conf.h"
22 #include "file_util.h"
24 #include "opkg_download.h"
26 #include "opkg_message.h"
28 /* This is used for backwards compatibility */
30 opkg_op (int argc
, char *argv
[])
35 int nocheckfordirorfile
= 0;
36 int noreadfeedsfile
= 0;
38 conf
->verbosity
= NOTICE
;
40 opts
= args_parse (argc
, argv
);
41 if (opts
== argc
|| opts
< 0)
43 args_usage ("opkg must have one sub-command argument");
46 cmd_name
= argv
[opts
++];
48 if ( !strcmp(cmd_name
,"print-architecture") ||
49 !strcmp(cmd_name
,"print_architecture") ||
50 !strcmp(cmd_name
,"print-installation-architecture") ||
51 !strcmp(cmd_name
,"print_installation_architecture") )
52 nocheckfordirorfile
= 1;
54 if ( !strcmp(cmd_name
,"flag") ||
55 !strcmp(cmd_name
,"configure") ||
56 !strcmp(cmd_name
,"remove") ||
57 !strcmp(cmd_name
,"files") ||
58 !strcmp(cmd_name
,"search") ||
59 !strcmp(cmd_name
,"compare_versions") ||
60 !strcmp(cmd_name
,"compare-versions") ||
61 !strcmp(cmd_name
,"list_installed") ||
62 !strcmp(cmd_name
,"list-installed") ||
63 !strcmp(cmd_name
,"status") )
66 cmd
= opkg_cmd_find (cmd_name
);
69 fprintf (stderr
, "%s: unknown sub-command %s\n", argv
[0],
79 if (!nocheckfordirorfile
) {
80 if (!noreadfeedsfile
) {
81 if (pkg_hash_load_feeds())
85 if (pkg_hash_load_status_files())
89 if (cmd
->requires_args
&& opts
== argc
)
92 "%s: the ``%s'' command requires at least one argument\n",
97 if (opkg_cmd_exec (cmd
, argc
- opts
, (const char **) (argv
+ opts
)))