commit 7f169e9f63822261854ea8ac36f7a5dd70c144e1
parent 520c3a1027335708828e2c249ae51b3363db99f0
Author: Nihal Jere <nihal@nihaljere.xyz>
Date: Mon, 22 Feb 2021 17:59:27 -0600
kiss.c: add kiss_alt_swap, which swaps between alternatives
Diffstat:
M | TODO | | | 2 | +- |
M | kiss.c | | | 26 | +++++++++++++++++++++++++- |
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/TODO b/TODO
@@ -8,7 +8,7 @@
- [ ] http
- [ ] LibreSSL/BearSSL SHA256?
-- [ ] alternatives
+- [X] alternatives
- [ ] build
- [X] checksum
- [-] download
diff --git a/kiss.c b/kiss.c
@@ -24,6 +24,27 @@ kiss_alt()
}
void
+kiss_alt_swap(char *name, char *path)
+{
+ struct alt_t alt;
+ memset(&alt, 0, sizeof(alt));
+
+ if (strlen(name) >= PKG_NAME_MAX)
+ die("%s: %s is too long of a name", __func__, name);
+
+ if (strlen(path) >= PATH_LEN)
+ die("%s: %s is too long of a path", __func__, path);
+
+ strcpy(alt.name, name);
+ strcpy(alt.path, path);
+
+ if (alt_exists(&alt) != 0)
+ die("%s: %s does not have alternative %s", __func__, name, path);
+
+ alt_swap(&alt);
+}
+
+void
kiss_download_names(char *kiss_path, char *names[], int len)
{
struct source_t sources[PKG_SOURCES_MAX];
@@ -180,7 +201,10 @@ main(int argc, char *argv[])
} else if (strcmp(argv[1], "checksum") == 0 && argc > 2) {
kiss_checksum_names(kiss_path, &argv[2], argc-2);
} else if (strcmp(argv[1], "alt") == 0) {
- kiss_alt();
+ if (argc == 2)
+ kiss_alt();
+ else if (argc == 4)
+ kiss_alt_swap(argv[2], argv[3]);
}
return 0;