let krops = builtins.fetchGit { url = https://cgit.krebsco.de/krops/; }; lib = import "${krops}/lib"; pkgs = import "${krops}/pkgs" {}; source = name: lib.evalSource [ { machine-config.file = toString ./.; } ]; command = targetPath: '' nix-shell -p git --run ' nix build -v '${targetPath}/machine-config#nixosConfigurations.$(hostname).config.system.build.toplevel' && \ nixos-rebuild switch -v --show-trace --flake ${targetPath}/machine-config ' ''; createHost = name: target: pkgs.krops.writeCommand "deploy-${name}" { inherit command; source = source name; target = target; }; in rec { # Deployments # Run with: # nix-build ./krops.nix -A loki && ./result loki = createHost "loki" "root@loki"; drone = createHost "drone" "root@10.0.0.202"; proxy = createHost "proxy" "root@10.0.0.251"; }