summaryrefslogtreecommitdiff
path: root/Biz/Ide/push.sh
blob: 43dff2806f90934a02b27911eedaca1872d67515 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/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 systemd service. there does not seem to be a way
# to get it from nix-instantiate. (or, maybe i should put this in bild --plan?)
where=$(rg --only-matching --replace '$2' --regexp '(domainname ")(.*)(")' \
  "$what/etc/systemd/system/domainname.service")
nix copy --to ssh://"$USER"@"$where" "$what"
ssh "$USER"@"$where" sudo "$what"/bin/switch-to-configuration switch
ssh "$USER"@"$where" sudo nix-env --profile /nix/var/nix/profiles/system --set "$what"
echo "${GRN}good:  push:  $target${NC}"