summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2012-01-12 10:27:09 +0200
committerTimo Teräs <timo.teras@iki.fi>2012-01-12 10:27:09 +0200
commit2372692660c80e79f1161f6ea99dd5eeea60a6d4 (patch)
treedc5a20313156fd48d586754dde916c98463436cb
parent1de86529a9a35e3dbd2927e54254ad39c4aacd95 (diff)
add: fail if repository tag does not exist
-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) {