(define-module (manifests substitutes tribes-node) #:use-module (gnu packages) #:use-module (guix profiles) #:use-module (tribes packages otp) #:use-module (tribes packages source) #:use-module (tribes packages terminals)) (define %tribes-node-specifications '("nss-certs" "openssh" "postgresql" "rsync" "ripgrep" "fd" "tmux" "neovim" "btop")) (define (make-tribes-node-manifest) (let ((source-directory (getenv "TRIBES_SOURCE_DIRECTORY")) (mix-deps-directory (getenv "TRIBES_MIX_DEPS_DIRECTORY")) (parrhesia-directory (getenv "TRIBES_PARRHESIA_DIRECTORY"))) (packages->manifest (append (map specification->package %tribes-node-specifications) (list erlang-28 elixir-otp28 elixir-hex-otp28 ghostty-terminfo) (if (and source-directory mix-deps-directory parrhesia-directory) (list (tribes-source-package (tribes-source-directory->local-file source-directory) (tribes-source-directory->local-file mix-deps-directory) (tribes-source-directory->local-file parrhesia-directory) #:version (or (getenv "TRIBES_RELEASE_VERSION") "dev"))) '()))))) (make-tribes-node-manifest)