#!/run/current-system/profile/bin/guile \ -L . !# ;; kenku --- crawl and reproduce github actions ;; Copyright © 2026 bdunahu ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . (use-modules (ice-9 match) ((src poll-repos) #:prefix poll:) ((src crawl-actions-wrapper) #:prefix get-act:) ((src crawl-newest-commits) #:prefix new-commit:) ((src crawl-type-wrapper) #:prefix get-type:) ((src crawl-lockfiles) #:prefix get-lock:) ((src build-actions) #:prefix build:)) (define (main . args) (match args (("poll" . args) (poll:poll-repos)) (("crawl" . args) (get-act:crawl-actions)) (("commits" . args) (new-commit:crawl-commits)) (("types" . args) (get-type:crawl-types)) (("lock" . args) (get-lock:crawl-lockfiles)) (("build" . args) (build:build-actions)) (anything (format (current-error-port) "Usage: kenku Commands: poll write a bunch of github repos to cache crawl write the referenced workflows from each polled repo commits get the newest commits of each referenced action types get the types of the newest referenced actions lock get the package manager used by each node action build build all npm actions in a container~%")))) (apply main (cdr (command-line))) ;; Local Variables: ;; mode: scheme ;; End: