guixconfig/library.org
2023-12-01 15:30:07 +01:00

1.4 KiB

Babel Library

This library contains code blocks to be used by other files in this repository.

Converting Lists

Converting org lists into guix use- calls.

  `(,(string->symbol use-call)
    ,@(map (lambda (x)
             (let ((splits (string-split x #\ )))
               (if (and (= (length splits) 1)
                        (= 0 all-parens))
                   (string->symbol (car splits))
                   (map (lambda (y) (string->symbol y))
                        splits))))
           entries))

Converting Org lists into Scheme symbol lists.

  `(list
    ,@(map (lambda (x) (string->symbol x)) input))

Converting Tables

  `(list
    ,@(map
       (lambda (row)
         (let ((service-name (car row))
               (configuration (cadr row)))
           `(service ,(string->symbol (string-append service-name "-service-type"))
             (,(string->symbol (string-append service-name "-configuration"))
              ,@(call-with-input-string configuration
                  read)))))
       input))