#!/usr/bin/env bash # Eventually convert to haskell, see: # - https://github.com/awakesecurity/nix-deploy/blob/master/src/Main.hs # - http://www.haskellforall.com/2018/08/nixos-in-production.html prefix=${PWD/$CODEROOT} if [[ "$prefix" == "" ]] then target="$1" else target="$prefix.$1" fi what=$(realpath "${CODEROOT:?}/_/nix/$target") # hack: get the domain from the activation script. there does not seem # to be a way to get it from nix-instantiate where=$(rg -r '$2' -e '(domainname ")(.*)(")' "$what/activate") nix copy --to ssh://root@"$where" "$what" ssh root@"$where" "$what"/bin/switch-to-configuration switch ssh root@"$where" nix-env --profile /nix/var/nix/profiles/system --set "$what" echo "${GRN}good: push: $target${NC}"