summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2009-01-15 12:55:26 +0200
committerTimo Teras <timo.teras@iki.fi>2009-01-15 12:55:26 +0200
commitcfdef51bee5f2c4ccb95e3bb3c929df13b9fc54a (patch)
tree52ed75c5332c861194d4e7c1a3613ec471a9f803
parent4c7f1e0deca0a48bd398d332e3a3c42ce527d04a (diff)
downloadapk-tools-cfdef51bee5f2c4ccb95e3bb3c929df13b9fc54a.tar.bz2
apk-tools-cfdef51bee5f2c4ccb95e3bb3c929df13b9fc54a.tar.xz
db: index file location is a URL
-rw-r--r--TODO2
-rw-r--r--src/apk_io.h1
-rw-r--r--src/database.c2
-rw-r--r--src/url.c6
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));
}
+