#!/usr/bin/env sh # Take a host name and return the nix store path to the host's system info. # Type # _system_info :: String -> Path _system_info() { nix --option warn-dirty false build .#nixosConfigurations."$1".config.vhack.system-info.markdown --print-out-paths --no-link } _glow() { if command -v glow >/dev/null; then glow --width 0 else cat fi } # The expression is not meant to be expanded by the shell # shellcheck disable=SC2016 nix eval --expr '"${builtins.concatStringsSep "\n" (builtins.attrNames (builtins.fromTOML (builtins.readFile ./hosts/host-names.toml)))}\n"' --impure --raw | while read -r host; do echo "# $host" | _glow _glow <"$(_system_info "$host")" done # vim: ft=sh