commit 7e6ac1b215a431bdc45a6a5d295d21515a37ca5a
parent a6d417232fac62843657d7106e289af252fd31ca
Author: Nihal Jere <nihal@nihaljere.xyz>
Date: Sat, 20 Feb 2021 22:37:27 -0600
kiss.c: add kiss_checksum_names
Diffstat:
M | kiss.c | | | 27 | +++++++++++++++++++++++++++ |
1 file changed, 27 insertions(+), 0 deletions(-)
diff --git a/kiss.c b/kiss.c
@@ -38,6 +38,31 @@ kiss_download_names(char *kiss_path, char *names[], int len)
}
void
+kiss_checksum_names(char *kiss_path, char *names[], int len)
+{
+ char *repo, kp[strlen(kiss_path)], path[PATH_LEN];
+ int count;
+ struct source_t sources[64];
+ for (int i = 0; i < len; i++) {
+ /* iterate through KISS_PATH */
+ memccpy(kp, kiss_path, '\0', strlen(kiss_path));
+
+ if ((repo = strtok(kp, ":")) == NULL)
+ die("Invalid KISS_PATH.");
+
+ do {
+ if (pkg_exists(repo, names[i], path)) {
+ memset(sources, 0, sizeof(sources));
+ count = pkg_sources(repo, names[i], sources);
+ pkg_retrieve(sources, count);
+ pkg_checksums_gen(repo, names[i], sources);
+ break;
+ }
+ } while ((repo = strtok(NULL, ":")) != NULL);
+ }
+}
+
+void
kiss_list_all()
{
DIR *db;
@@ -142,6 +167,8 @@ main(int argc, char *argv[])
kiss_search(kiss_path, argv[2]);
} else if (strcmp(argv[1], "download") == 0 && argc > 2) {
kiss_download_names(kiss_path, &argv[2], argc-2);
+ } else if (strcmp(argv[1], "checksum") == 0 && argc > 2) {
+ kiss_checksum_names(kiss_path, &argv[2], argc-2);
}
return 0;