From 23f45a934e9315c8f6f235f614e376771b737621 Mon Sep 17 00:00:00 2001 From: graham.gower Date: Thu, 17 Dec 2009 19:46:30 -0500 Subject: Move libopkg.c out into the src dir. It shouldn't be part of the library. git-svn-id: http://opkg.googlecode.com/svn/trunk@499 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index d078060..efdc19d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ AM_CFLAGS = -I${top_srcdir}/libopkg ${ALL_CFLAGS} bin_PROGRAMS = opkg-cl -opkg_cl_SOURCES = opkg-frontend.c +opkg_cl_SOURCES = opkg-cl.c opkg_cl_LDADD = $(top_builddir)/libopkg/libopkg.la \ $(top_builddir)/libbb/libbb.la diff --git a/src/opkg-cl.c b/src/opkg-cl.c new file mode 100644 index 0000000..74c82e6 --- /dev/null +++ b/src/opkg-cl.c @@ -0,0 +1,118 @@ +/* opkg-cl.c - the opkg package management system + + Florian Boor + + Copyright (C) 2003 kernel concepts + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2, or (at + your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + opkg command line frontend using libopkg +*/ + +#include "includes.h" + +#include "opkg_conf.h" +#include "opkg_cmd.h" +#include "file_util.h" +#include "args.h" +#include "opkg_download.h" + +#include "opkg_message.h" + +int +main(int argc, char *argv[]) +{ + int opts; + char *cmd_name; + opkg_cmd_t *cmd; + int nocheckfordirorfile = 0; + int noreadfeedsfile = 0; + + conf->verbosity = NOTICE; + + opts = args_parse (argc, argv); + if (opts == argc || opts < 0) + { + args_usage ("opkg must have one sub-command argument"); + } + + 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") ) + nocheckfordirorfile = 1; + + if ( !strcmp(cmd_name,"flag") || + !strcmp(cmd_name,"configure") || + !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,"status") ) + 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); + } + + conf->pfm = cmd->pfm; + + if (opkg_conf_init()) + goto err0; + + if (!nocheckfordirorfile) { + if (!noreadfeedsfile) { + if (pkg_hash_load_feeds()) + goto err1; + } + + if (pkg_hash_load_status_files()) + goto err1; + } + + if (cmd->requires_args && opts == argc) + { + fprintf (stderr, + "%s: the ``%s'' command requires at least one argument\n", + argv[0], cmd_name); + args_usage (NULL); + } + + if (opkg_cmd_exec (cmd, argc - opts, (const char **) (argv + opts))) + goto err2; + + print_error_list(); + free_error_list(); + + return 0; + +err2: +#ifdef HAVE_CURL + opkg_curl_cleanup(); +#endif +err1: + opkg_conf_deinit (); + +err0: + print_error_list(); + free_error_list(); + + return -1; +} diff --git a/src/opkg-frontend.c b/src/opkg-frontend.c deleted file mode 100644 index 5afb5b9..0000000 --- a/src/opkg-frontend.c +++ /dev/null @@ -1,28 +0,0 @@ -/* opkg-frontend.c - the itsy package management system - - Florian Boor - - Copyright (C) 2003 kernel concepts - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2, or (at - your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - opkg command line frontend using libopkg - -*/ - -#include - -/* This is really small, eh? ;-) */ - -int main(int argc, char *argv[]) -{ - return opkg_op(argc,argv); -} -- cgit v0.9.1