summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/add.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/add.c b/src/add.c
index 5980605..2863761 100644
--- a/src/add.c
+++ b/src/add.c
@@ -107,13 +107,21 @@ static int add_main(void *ctx, struct apk_database *db, int argc, char **argv)
}
apk_dep_from_pkg(&dep, db, pkg);
} else {
+ struct apk_repository_tag *tag;
apk_blob_t b = APK_BLOB_STR(argv[i]);
+
apk_blob_pull_dep(&b, db, &dep);
if (APK_BLOB_IS_NULL(b)) {
- apk_error("'%s' is not a valid dependency, format is name(@tag)([<>=]version)",
+ apk_error("'%s' is not a valid dependency, format is name(@tag)([<>=]version)",
argv[i]);
return -1;
}
+ tag = &db->repo_tags[dep.repository_tag];
+ if (!tag->allowed_repos) {
+ apk_error("Repository tag '" BLOB_FMT "' is not defined",
+ BLOB_PRINTF(*tag->name));
+ return -1;
+ }
}
if (virtpkg == NULL) {