summaryrefslogtreecommitdiffstats
path: root/libipkg.c
diff options
context:
space:
mode:
Diffstat (limited to 'libipkg.c')
-rw-r--r--libipkg.c527
1 files changed, 0 insertions, 527 deletions
diff --git a/libipkg.c b/libipkg.c
deleted file mode 100644
index 1152253..0000000
--- a/libipkg.c
+++ /dev/null
@@ -1,527 +0,0 @@
-/* ipkglib.c - the itsy package management system
-
- Florina 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.
-*/
-
-#ifdef IPKG_LIB
-
-#include "ipkg.h"
-#include "includes.h"
-#include "libipkg.h"
-
-#include "args.h"
-#include "ipkg_conf.h"
-#include "ipkg_cmd.h"
-#include "file_util.h"
-
-
-
-ipkg_message_callback ipkg_cb_message = NULL;
-ipkg_response_callback ipkg_cb_response = NULL;
-ipkg_status_callback ipkg_cb_status = NULL;
-ipkg_list_callback ipkg_cb_list = NULL;
-
-
-int
-ipkg_init (ipkg_message_callback mcall,
- ipkg_response_callback rcall,
- args_t * args)
-{
- ipkg_cb_message = mcall;
- ipkg_cb_response = rcall;
-
- args_init (args);
-
- return 0;
-}
-
-
-int
-ipkg_deinit (args_t * args)
-{
- args_deinit (args);
- ipkg_cb_message = NULL;
- ipkg_cb_response = NULL;
-
- /* place other cleanup stuff here */
-
- return 0;
-}
-
-
-int
-ipkg_packages_list(args_t *args,
- const char *packages,
- ipkg_list_callback cblist,
- void *userdata)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- ipkg_cb_list = cblist;
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("list");
- if (packages)
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &packages, userdata);
- else
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 0, NULL, userdata);
- ipkg_cb_list = NULL;
- ipkg_conf_deinit (&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_status(args_t *args,
- const char *packages,
- ipkg_status_callback cbstatus,
- void *userdata)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- ipkg_cb_status = cbstatus;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("status");
- if (packages)
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &packages, userdata);
- else
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 0, NULL, userdata);
-
- ipkg_cb_status = NULL;
- ipkg_conf_deinit (&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_info(args_t *args,
- const char *packages,
- ipkg_status_callback cbstatus,
- void *userdata)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- ipkg_cb_status = cbstatus;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("info");
- if (packages)
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &packages, userdata);
- else
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 0, NULL, userdata);
-
- ipkg_cb_status = NULL;
- ipkg_conf_deinit (&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_install (args_t * args, const char *name)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("install");
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &name, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_remove(args_t *args, const char *name, int purge)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- if (purge)
- cmd = ipkg_cmd_find ("purge");
- else
- cmd = ipkg_cmd_find ("remove");
-
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &name, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_lists_update(args_t *args)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("update");
-
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 0, NULL, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_upgrade(args_t *args)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("upgrade");
-
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 0, NULL, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_packages_download (args_t * args, const char *name)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("download");
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &name, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_package_files(args_t *args,
- const char *name,
- ipkg_list_callback cblist,
- void *userdata)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- ipkg_cb_list = cblist;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("files");
-
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &name, userdata);
-
- ipkg_cb_list = NULL;
- ipkg_conf_deinit(&ipkg_conf);
- return (err);
-}
-
-
-int
-ipkg_file_search(args_t *args,
- const char *file,
- ipkg_list_callback cblist,
- void *userdata)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!file || !strlen (file))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- ipkg_cb_list = cblist;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find ("search");
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &file, userdata);
-
- ipkg_cb_list = NULL;
- ipkg_conf_deinit(&ipkg_conf);
- return(err);
-}
-
-
-int
-ipkg_file_what(args_t *args, const char *file, const char* command)
-{
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!file || !strlen (file))
- return (-1);
-
- err = ipkg_conf_init (&ipkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = ipkg_cmd_find (command);
- err = ipkg_cmd_exec (cmd, &ipkg_conf, 1, &file, NULL);
-
- ipkg_conf_deinit(&ipkg_conf);
- return(err);
-}
-
-#define ipkg_package_whatdepends(args,file) ipkg_file_what(args,file,"whatdepends")
-#define ipkg_package_whatrecommends(args, file) ipkg_file_what(args,file,"whatrecommends")
-#define ipkg_package_whatprovides(args, file) ipkg_file_what(args,file,"whatprovides")
-#define ipkg_package_whatconflicts(args, file) ipkg_file_what(args,file,"whatconflicts")
-#define ipkg_package_whatreplaces(args, file) ipkg_file_what(args,file,"whatreplaces")
-
-
-int default_ipkg_message_callback(ipkg_conf_t *conf, message_level_t level,
- char *msg)
-{
- if (conf && (conf->verbosity < level)) {
- return 0;
- } else {
-#ifdef IPKG_LIB
- if ( level == IPKG_ERROR ){
- push_error_list(&error_list, msg);
-// printf(msg);
- } else
-#endif
- printf(msg);
- }
- return 0;
-}
-
-int default_ipkg_list_callback(char *name, char *desc, char *version,
- pkg_state_status_t status, void *userdata)
-{
- if (desc)
- printf("%s - %s - %s\n", name, version, desc);
- else
- printf("%s - %s\n", name, version);
- return 0;
-}
-
-int default_ipkg_files_callback(char *name, char *desc, char *version,
- pkg_state_status_t status, void *userdata)
-{
- if (desc)
- printf("%s\n", desc);
- return 0;
-}
-
-int default_ipkg_status_callback(char *name, int istatus, char *desc,
- void *userdata)
-{
- printf("%s\n", desc);
- return 0;
-}
-
-char* default_ipkg_response_callback(char *question)
-{
- char *response = NULL;
- printf(question);
- fflush(stdout);
- do {
- response = (char *)file_read_line_alloc(stdin);
- } while (response == NULL);
- return response;
-}
-
-/* This is used for backward compatibility */
-int
-ipkg_op (int argc, char *argv[])
-{
- int err, optind;
- args_t args;
- char *cmd_name;
- ipkg_cmd_t *cmd;
- ipkg_conf_t ipkg_conf;
-
- args_init (&args);
-
- optind = args_parse (&args, argc, argv);
- if (optind == argc || optind < 0)
- {
- args_usage ("ipkg 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.
-*/
- 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") ||
- !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") )
- args.noreadfeedsfile = 1;
-
-
- err = ipkg_conf_init (&ipkg_conf, &args);
- if (err)
- {
- return err;
- }
-
- args_deinit (&args);
-
- ipkg_cb_message = default_ipkg_message_callback;
- ipkg_cb_response = default_ipkg_response_callback;
- ipkg_cb_status = default_ipkg_status_callback;
- if ( strcmp(cmd_name, "files")==0)
- ipkg_cb_list = default_ipkg_files_callback;
- else
- ipkg_cb_list = default_ipkg_list_callback;
-
- cmd = ipkg_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)
- {
- fprintf (stderr,
- "%s: the ``%s'' command requires at least one argument\n",
- __FUNCTION__, cmd_name);
- args_usage (NULL);
- }
-
- err = ipkg_cmd_exec (cmd, &ipkg_conf, argc - optind, (const char **) (argv + optind), NULL);
-
- ipkg_conf_deinit (&ipkg_conf);
-
- return err;
-}
-
-#endif /* IPKG_LIB */