ordo/guix.scm

79 lines
4.2 KiB
Scheme

(use-modules
(gnu packages)
(gnu packages bash)
(gnu packages golang-crypto)
(gnu packages guile)
(gnu packages guile-xyz)
(gnu packages ssh)
(gnu packages version-control)
(guix build-system guile)
(guix download)
(guix gexp)
((guix licenses) #:prefix license:)
(guix packages)
(srfi srfi-1))
(package
(name "guile-ordo")
(version "0.1.0")
(source
(local-file
(dirname (current-filename))
#:recursive? #t
#:select? (lambda (file stat)
(not (any (lambda (my-string)
(string-contains file my-string))
(list ".git" ".dir-locals.el" "guix.scm"))))))
(build-system guile-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-after 'build 'link-and-wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin")) ; bin directory for PATH.
(site-version (target-guile-effective-version))
(scm (lambda (p) (string-append p "/share/guile/site/" site-version)))
(go (lambda (p) (string-append p "/lib/guile/" site-version "/site-ccache")))
(runtime-deps (cons #$output (map (lambda (p) (assoc-ref inputs p)) (list "guile-config"
"guile-dsv"
"guile-filesystem"
"guile-ini"
"guile-irregex"
"guile-libyaml"
"guile-json"
"guile-lib"
"guile-semver"
"guile-srfi-145"
"guile-srfi-158"
"guile-srfi-197"
"guile-srfi-235"
"guile-ssh")))))
(mkdir-p bin)
(let ((source-script (string-append #$output
"/share/guile/site/" site-version "/"
"ordo.scm"))
(target-command (string-append bin "/ordo")))
(symlink source-script target-command)
(wrap-program target-command
#:sh (which "bash")
`("GUILE_LOAD_PATH" prefix ,(map scm runtime-deps))
`("GUILE_LOAD_COMPILED_PATH" prefix ,(map go runtime-deps))))))))))
(inputs (list guile-3.0 bash-minimal git git-lfs age))
(propagated-inputs (list guile-config
guile-dsv
guile-filesystem
guile-ini
guile-irregex
guile-libyaml
guile-json-4
guile-lib
guile-semver
guile-srfi-145
guile-srfi-158
guile-srfi-197
guile-srfi-235
guile-ssh))
(synopsis "Ordo configuration management")
(description "")
(home-page "")
(license license:gpl3+))