about summary refs log tree commit diff stats
path: root/build.sh
blob: 3c3d387cc6da83eb92931b1d07bf1f7f3cc86de1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env sh

host="${1-tiamat}"
root="$(git rev-parse --show-toplevel)"

SYSTEM_OUT="$root/result-system"
HOME_OUT="$root/result-home-soispha"

check() {
    file="$1"
    if [ -s "$file" ]; then
        rm "$file"
    elif ! [ -e "$file" ]; then
        : "Ignore not existing files"
    else
        echo "ERROR: '$file' is not a symlink. Not removing it." 1>&2
        exit 1
    fi
}

build_system() {
    _val="$(nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --print-out-paths --no-link)"
    exit_val="$?"

    if [ "$exit_val" -ne 0 ]; then
        echo "ERROR: Failed to build you system config for host: '$host'" 1>&2
        printf 1
    else
        printf "%s" "$_val"
    fi
}

system="$(build_system)"
[ "$system" = "1" ] && exit 1

check "$SYSTEM_OUT"
ln --symbolic "$system" "$SYSTEM_OUT"

home="$(grep ExecStart= "$SYSTEM_OUT/etc/systemd/system/home-manager-soispha.service" | awk '{print $2}')"
check "$HOME_OUT"
ln --symbolic "$home" "$HOME_OUT"

# vim: ft=sh