summaryrefslogtreecommitdiffstats
path: root/tests/libopkg_test.c
blob: fe1cefd8839a59fb95c779d8db88e3c2c12730ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <opkg.h>
#include <stdlib.h>
#include <stdio.h>

void
progress_callback (opkg_t *opkg, int percent, void *data)
{
  printf ("\r%s %3d%%", (char*) data, percent);
  fflush (stdout);
}

void
package_list_callback (opkg_t *opkg, opkg_package_t *pkg, void *data)
{
  static install_count = 0;
  static total_count = 0;

  if (pkg->installed)
    install_count++;

  total_count++;

  printf ("\rPackage count: %d Installed, %d Total Available", install_count, total_count);
  fflush (stdout);

  opkg_package_free (pkg);
}

void
package_list_upgradable_callback (opkg_t *opkg, opkg_package_t *pkg, void *data)
{
  printf ("%s - %s\n", pkg->name, pkg->version);
}

int
main (int argc, char **argv)
{
  opkg_t *opkg;
  int err;
  
  opkg = opkg_new ();

  opkg_set_option (opkg, "offline_root", "/tmp/");

  opkg_re_read_config_files (opkg);

  err = opkg_update_package_lists (opkg, progress_callback, "Updating...");
  printf ("\nopkg_update_package_lists returned %d\n", err);

  err = opkg_install_package (opkg, "aspell", progress_callback, "Installing...");
  printf ("\nopkg_install_package returned %d\n", err);

  err = opkg_upgrade_package (opkg, "aspell", progress_callback, "Upgrading...");
  printf ("\nopkg_upgrade_package returned %d\n", err);

  err = opkg_remove_package (opkg, "aspell", progress_callback, "Removing...");
  printf ("\nopkg_remove_package returned %d\n", err);

  printf ("Listing upgradable packages...\n");
  opkg_list_upgradable_packages (opkg, package_list_upgradable_callback, NULL);

  err = opkg_upgrade_all (opkg, progress_callback, "Upgrading all...");
  printf ("\nopkg_upgrade_all returned %d\n", err);

  opkg_list_packages (opkg, package_list_callback, NULL);
  printf ("\n");

  opkg_free (opkg);
}