diff options
-rw-r--r-- | doc/apk-fetch.8.scd | 3 | ||||
-rw-r--r-- | src/app_fetch.c | 20 |
2 files changed, 17 insertions, 6 deletions
diff --git a/doc/apk-fetch.8.scd b/doc/apk-fetch.8.scd index 2b17f1a..fa39241 100644 --- a/doc/apk-fetch.8.scd +++ b/doc/apk-fetch.8.scd @@ -37,3 +37,6 @@ specified. *Note*: this option is unreliable if needed indexes are not up-to-date as this omits refresing or downloading of missing indexes. + +*--url* + Print the full URL for downloaded packages. diff --git a/src/app_fetch.c b/src/app_fetch.c index 4704b0b..adac2af 100644 --- a/src/app_fetch.c +++ b/src/app_fetch.c @@ -23,6 +23,7 @@ #define FETCH_RECURSIVE 1 #define FETCH_STDOUT 2 #define FETCH_LINK 4 +#define FETCH_URL 8 struct fetch_ctx { unsigned int flags; @@ -71,7 +72,8 @@ static int cup(void) OPT(OPT_FETCH_recursive, APK_OPT_SH("R") "recursive") \ OPT(OPT_FETCH_output, APK_OPT_ARG APK_OPT_SH("o") "output") \ OPT(OPT_FETCH_simulate, "simulate") \ - OPT(OPT_FETCH_stdout, APK_OPT_SH("s") "stdout") + OPT(OPT_FETCH_stdout, APK_OPT_SH("s") "stdout") \ + OPT(OPT_FETCH_url, "url") \ APK_OPT_APPLET(option_desc, FETCH_OPTIONS); @@ -95,6 +97,9 @@ static int option_parse_applet(void *ctx, struct apk_db_options *dbopts, int opt case OPT_FETCH_output: fctx->outdir_fd = openat(AT_FDCWD, optarg, O_RDONLY | O_CLOEXEC); break; + case OPT_FETCH_url: + fctx->flags |= FETCH_URL; + break; default: return -ENOTSUP; } @@ -143,14 +148,17 @@ static int fetch_package(apk_hash_item item, void *pctx) return 0; } - apk_message("Downloading " PKG_VER_FMT, PKG_VER_PRINTF(pkg)); + r = apk_repo_format_item(db, repo, pkg, &urlfd, url, sizeof(url)); + if (r < 0) goto err; + + if (ctx->flags & FETCH_URL) + apk_message("%s", url); + else + apk_message("Downloading " PKG_VER_FMT, PKG_VER_PRINTF(pkg)); + if (apk_flags & APK_SIMULATE) return 0; - r = apk_repo_format_item(db, repo, pkg, &urlfd, url, sizeof(url)); - if (r < 0) - goto err; - if (ctx->flags & FETCH_STDOUT) { fd = STDOUT_FILENO; } else { |