nkiss

WIP
git clone git://git.nihaljere.xyz/nkiss
Log | Files | Refs

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:
MTODO | 2+-
Mkiss.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;