summaryrefslogtreecommitdiff
path: root/Biz/Ide/push.bash
blob: 2238e06f0aaccb9b182b636dd04afab106656c12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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=$(echo $PWD | sed -e "s|^${CODEROOT:?}/*||g")
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
printf "${GRN}good:  push:  $target${NC}\n"