From cfdef51bee5f2c4ccb95e3bb3c929df13b9fc54a Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Thu, 15 Jan 2009 12:55:26 +0200 Subject: db: index file location is a URL --- TODO | 2 -- src/apk_io.h | 1 + src/database.c | 2 +- src/url.c | 6 ++++++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/TODO b/TODO index 3c93ddd..06d05af 100644 --- a/TODO +++ b/TODO @@ -6,8 +6,6 @@ - Compress 'installed' and 'scripts' - Repository support: - always keep local copy of index - - index/package fetching from URLs - - read from config file - cache .apks on USB stick when using network repo for reboot - Error handling and rollback diff --git a/src/apk_io.h b/src/apk_io.h index b3bcd08..8ee80f8 100644 --- a/src/apk_io.h +++ b/src/apk_io.h @@ -50,6 +50,7 @@ struct apk_istream *apk_istream_from_fd(int fd); struct apk_istream *apk_istream_from_file(const char *file); struct apk_istream *apk_istream_from_file_gz(const char *file); struct apk_istream *apk_istream_from_url(const char *url); +struct apk_istream *apk_istream_from_url_gz(const char *url); size_t apk_istream_skip(struct apk_istream *istream, size_t size); size_t apk_istream_splice(void *stream, int fd, size_t size, apk_progress_cb cb, void *cb_ctx); diff --git a/src/database.c b/src/database.c index 36492a4..99ccaac 100644 --- a/src/database.c +++ b/src/database.c @@ -813,7 +813,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t repository) }; snprintf(tmp, sizeof(tmp), "%s/APK_INDEX.gz", db->repos[r].url); - is = apk_istream_from_file_gz(tmp); + is = apk_istream_from_url_gz(tmp); if (is == NULL) { apk_error("Failed to open index file %s", tmp); return -1; diff --git a/src/url.c b/src/url.c index 0999399..a1de589 100644 --- a/src/url.c +++ b/src/url.c @@ -66,6 +66,11 @@ struct apk_istream *apk_istream_from_url(const char *url) return apk_istream_from_fd(fork_wget(url)); } +struct apk_istream *apk_istream_from_url_gz(const char *file) +{ + return apk_bstream_gunzip(apk_bstream_from_url(file), TRUE); +} + struct apk_bstream *apk_bstream_from_url(const char *url) { if (url_is_file(url)) @@ -73,3 +78,4 @@ struct apk_bstream *apk_bstream_from_url(const char *url) return apk_bstream_from_fd(fork_wget(url)); } + -- cgit v1.2.3