(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) #:use-module (tribes packages web)) (define %tribes-node-specifications '("nss-certs" "openssh" "postgresql" "rsync" "ripgrep" "fd" "tmux" "neovim" "btop")) (define (getenv/default name default) (or (getenv name) default)) (define (tribes-node-package) (let ((source-directory (getenv "TRIBES_SOURCE_DIRECTORY"))) (if source-directory (local-tribes-package source-directory #:version (getenv/default "TRIBES_RELEASE_VERSION" "dev") #:mix-deps-sha256 (getenv "TRIBES_MIX_DEPS_SHA256") #:raw-mix-deps-sha256 (getenv "TRIBES_RAW_MIX_DEPS_SHA256")) tribes-package))) (define (make-tribes-node-manifest) (packages->manifest (append (map specification->package %tribes-node-specifications) (list erlang-28 elixir-otp28 elixir-hex-otp28 ghostty-terminfo hitch vinyl lego (tribes-node-package))))) (make-tribes-node-manifest)