#include #include #include /* * build thus: * gcc -o opkg_extract_test opkg_extract_test.c -I./busybox-0.60.2/libbb -L./busybox-0.60.2 -lbb * */ const char *applet_name; int main(int argc, char *argv[]) { /* * see libbb.h and let your imagination run wild * or, set the last item below to extract_one_to_buffer, and you get the control file in * "returned" * or, set the last one to extract_all_to_fs, and, well, guess what happens */ /* enum extract_functions_e dowhat = extract_control_tar_gz | extract_unconditional | extract_one_to_buffer; */ enum extract_functions_e dowhat = extract_control_tar_gz | extract_all_to_fs | extract_preserve_date; char *returned; char *filename; int err; if (argc < 2) { fprintf(stderr, "syntax: %s []\n", argv[0]); exit(0); } if (argc < 3) { filename = NULL; } else { filename = argv[2]; } returned = deb_extract(argv[1], stdout, dowhat, NULL, filename, &err); if (returned) fprintf(stderr, "returned %s\n", returned); else fprintf(stderr, "extract returned nuthin'\n"); return 0; }