General Public License for more details.
*/
-#include "includes.h"
-#include <errno.h>
+#include <stdio.h>
#include "pkg_extract.h"
-
#include "libbb/libbb.h"
#include "file_util.h"
#include "sprintf_alloc.h"
-/* assuage libb functions */
-const char *applet_name = "opkg";
-
-int
-pkg_extract_control_file_to_stream(pkg_t *pkg, FILE *stream)
+int pkg_extract_control_file_to_stream(pkg_t * pkg, FILE * stream)
{
int err;
- deb_extract(pkg->local_filename, stream,
- extract_control_tar_gz
- | extract_to_stream,
- NULL, "./control", &err);
-
+ deb_extract(pkg_get_string(pkg, PKG_LOCAL_FILENAME), stream,
+ extract_control_tar_gz
+ | extract_to_stream, NULL, "control", &err);
return err;
}
int
-pkg_extract_control_files_to_dir_with_prefix(pkg_t *pkg, const char *dir,
- const char *prefix)
+pkg_extract_control_files_to_dir_with_prefix(pkg_t * pkg, const char *dir,
+ const char *prefix)
{
int err;
char *dir_with_prefix;
sprintf_alloc(&dir_with_prefix, "%s/%s", dir, prefix);
- deb_extract(pkg->local_filename, stderr,
- extract_control_tar_gz
- | extract_all_to_fs| extract_preserve_date
- | extract_unconditional,
- dir_with_prefix, NULL, &err);
+ deb_extract(pkg_get_string(pkg, PKG_LOCAL_FILENAME), stderr,
+ extract_control_tar_gz
+ | extract_all_to_fs | extract_preserve_date
+ | extract_unconditional, dir_with_prefix, NULL, &err);
free(dir_with_prefix);
return err;
}
-int
-pkg_extract_control_files_to_dir(pkg_t *pkg, const char *dir)
+int pkg_extract_control_files_to_dir(pkg_t * pkg, const char *dir)
{
return pkg_extract_control_files_to_dir_with_prefix(pkg, dir, "");
}
-
-int
-pkg_extract_data_files_to_dir(pkg_t *pkg, const char *dir)
+int pkg_extract_data_files_to_dir(pkg_t * pkg, const char *dir)
{
int err;
- deb_extract(pkg->local_filename, stderr,
- extract_data_tar_gz
- | extract_all_to_fs| extract_preserve_date
- | extract_unconditional,
- dir, NULL, &err);
+ deb_extract(pkg_get_string(pkg, PKG_LOCAL_FILENAME), stderr,
+ extract_data_tar_gz
+ | extract_all_to_fs | extract_preserve_date
+ | extract_unconditional, dir, NULL, &err);
return err;
}
-int
-pkg_extract_data_file_names_to_stream(pkg_t *pkg, FILE *stream)
+int pkg_extract_data_file_names_to_stream(pkg_t * pkg, FILE * stream)
{
int err;
- /* XXX: DPKG_INCOMPATIBILITY: deb_extract will extract all of the
- data file names with a '.' as the first character. I've taught
- opkg how to cope with the presence or absence of the '.', but
- this may trip up dpkg.
+ /* XXX: DPKG_INCOMPATIBILITY: deb_extract will extract all of the
+ data file names with a '.' as the first character. I've taught
+ opkg how to cope with the presence or absence of the '.', but
+ this may trip up dpkg.
- For all I know, this could actually be a bug in opkg-build. So,
- I'll have to try installing some .debs and comparing the *.list
- files.
+ For all I know, this could actually be a bug in opkg-build. So,
+ I'll have to try installing some .debs and comparing the *.list
+ files.
- If we wanted to, we could workaround the deb_extract behavior
- right here, by writing to a tmpfile, then munging things as we
- wrote to the actual stream. */
+ If we wanted to, we could workaround the deb_extract behavior
+ right here, by writing to a tmpfile, then munging things as we
+ wrote to the actual stream. */
- deb_extract(pkg->local_filename, stream,
- extract_quiet | extract_data_tar_gz | extract_list,
- NULL, NULL, &err);
+ deb_extract(pkg_get_string(pkg, PKG_LOCAL_FILENAME), stream,
+ extract_quiet | extract_data_tar_gz | extract_list,
+ NULL, NULL, &err);
return err;
}