diff --git a/ansi.scm b/ansi.scm new file mode 100644 index 0000000..04fe68a --- /dev/null +++ b/ansi.scm @@ -0,0 +1,70 @@ +;; +;; ansi.scm +;; +;; ANSI terminal support. +;; +;; ISC License +;; +;; Copyright 2023 Brmlab, z.s. +;; Dominik Pantůček +;; +;; Permission to use, copy, modify, and/or distribute this software +;; for any purpose with or without fee is hereby granted, provided +;; that the above copyright notice and this permission notice appear +;; in all copies. +;; +;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +;; + +(module + ansi + ( + ansi + ansi-tests! + ) + + (import scheme + (chicken base) + testing) + + ;; Only basic ANSI colors and bold attribute support. + (define colors + '((#:black . 30) + (#:red . 31) + (#:green . 32) + (#:yellow . 33) + (#:blue . 34) + (#:magenta . 35) + (#:cyan . 36) + (#:white . 37) + (#:default . 0) + (#:bold . 1))) + + ;; Returns a list with elements matching pred? predicate. + (define (filter pred? lst) + (let loop ((lst lst) + (res '())) + (if (null? lst) + (reverse res) + (if (pred? (car lst)) + (loop (cdr lst) + (cons (car lst) res)) + (loop (cdr lst) + res))))) + + (define (ansi . args) + "") + + (define (ansi-tests!) + (run-tests + ansi + )) + + ) diff --git a/brmsaptool.scm b/brmsaptool.scm index aeab131..d5f4b2b 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -29,7 +29,8 @@ month period member-file - command-line) + command-line + ansi) ;; Print banner (print "brmsaptool 0.2 (c) 2023 Brmlab, z.s.") @@ -42,6 +43,7 @@ (period-tests!) (member-file-tests!) (command-line-tests!) +(ansi-tests!) (newline) (command-line