8 int opkg_state_changed;
9 pkg_t *find_pkg = NULL;
11 #define TEST_PACKAGE "aspell"
13 void progress_callback(const opkg_progress_data_t * progress, void *data)
15 printf("\r%s %3d%%\n", (char *)data, progress->percentage);
19 static void list_pkg(pkg_t * pkg)
21 char *v = pkg_version_str_alloc(pkg);
22 printf("%s - %s\n", pkg->name, v);
26 void package_list_installed_callback(pkg_t * pkg, void *data)
28 if (pkg->state_status == SS_INSTALLED)
32 void package_list_callback(pkg_t * pkg, void *data)
34 static int install_count = 0;
35 static int total_count = 0;
37 if (pkg->state_status == SS_INSTALLED)
42 printf("\rPackage count: %d Installed, %d Total Available",
43 install_count, total_count);
47 /* store the first package to print out later */
52 void package_list_upgradable_callback(pkg_t * pkg, void *data)
57 void print_package(pkg_t * pkg)
59 char *v = pkg_version_str_alloc(pkg);
73 pkg->tags ? pkg->tags : "", pkg->size, pkg->state_status);
82 err = opkg_update_package_lists(progress_callback, "Updating...");
83 printf("\nopkg_update_package_lists returned %d\n", err);
85 opkg_list_packages(package_list_callback, NULL);
89 printf("Finding package \"%s\"\n", find_pkg->name);
91 opkg_find_package(find_pkg->name, find_pkg->version,
92 find_pkg->architecture,
97 printf("Package \"%s\" not found!\n", find_pkg->name);
99 printf("No package available to test find_package.\n");
102 opkg_install_package(TEST_PACKAGE, progress_callback,
104 printf("\nopkg_install_package returned %d\n", err);
107 opkg_upgrade_package(TEST_PACKAGE, progress_callback,
109 printf("\nopkg_upgrade_package returned %d\n", err);
112 opkg_remove_package(TEST_PACKAGE, progress_callback, "Removing...");
113 printf("\nopkg_remove_package returned %d\n", err);
115 printf("Listing upgradable packages...\n");
116 opkg_list_upgradable_packages(package_list_upgradable_callback, NULL);
118 err = opkg_upgrade_all(progress_callback, "Upgrading all...");
119 printf("\nopkg_upgrade_all returned %d\n", err);
123 int main(int argc, char **argv)
129 printf("Usage: %s command\n"
131 "\tupdate - Update package lists\n"
132 "\tfind [package] - Print details of the specified package\n"
133 "\tinstall [package] - Install the specified package\n"
134 "\tupgrade [package] - Upgrade the specified package\n"
135 "\tlist upgrades - List the available upgrades\n"
136 "\tlist all - List all available packages\n"
137 "\tlist installed - List all the installed packages\n"
138 "\tremove [package] - Remove the specified package\n"
139 "\trping - Reposiroties ping, check the accessibility of repositories\n"
140 "\ttest - Run test script\n", basename(argv[0]));
144 setenv("OFFLINE_ROOT", "/tmp", 0);
147 printf("opkg_new() failed. This sucks.\n");
152 switch (argv[1][0]) {
154 pkg = opkg_find_package(argv[2], NULL, NULL, NULL);
158 printf("Package \"%s\" not found!\n", find_pkg->name);
162 opkg_install_package(argv[2], progress_callback,
164 printf("\nopkg_install_package returned %d\n", err);
168 if (argv[1][2] == 'd') {
170 opkg_update_package_lists(progress_callback,
172 printf("\nopkg_update_package_lists returned %d\n",
178 opkg_upgrade_all(progress_callback,
180 printf("\nopkg_upgrade_all returned %d\n", err);
183 opkg_upgrade_package(argv[2],
186 printf("\nopkg_upgrade_package returned %d\n",
195 ("Please specify one either all, installed or upgrades\n");
197 switch (argv[2][0]) {
199 printf("Listing upgradable packages...\n");
200 opkg_list_upgradable_packages
201 (package_list_upgradable_callback, NULL);
204 printf("Listing all packages...\n");
205 opkg_list_packages(package_list_callback, NULL);
209 printf("Listing installed packages...\n");
211 (package_list_installed_callback, NULL);
214 printf("Unknown list option \"%s\"\n", argv[2]);
220 if (argv[1][1] == 'e') {
222 opkg_remove_package(argv[2], progress_callback,
224 printf("\nopkg_remove_package returned %d\n", err);
226 } else if (argv[1][1] == 'p') {
227 err = opkg_repository_accessibility_check();
229 ("\nopkg_repository_accessibility_check returned (%d)\n",
235 printf("Unknown command \"%s\"\n", argv[1]);