add snaplink
I know snaplink should be put to the nix store, but currently I have no idea how to do it.
This commit is contained in:
parent
4e280aeb69
commit
098fd77b3e
@ -85,6 +85,7 @@ let ssh_pubkeys = {
|
||||
daily = 7;
|
||||
autosnap = true;
|
||||
autoprune = true;
|
||||
post_snapshot_script = "/var/src/snaplink";
|
||||
};
|
||||
datasets."rpool/nixos/home".use_template = [ "prod" ];
|
||||
datasets."rpool/nixos/var".use_template = [ "prod" ];
|
||||
|
@ -9,6 +9,9 @@ let
|
||||
{
|
||||
nixpkgs.symlink = "/root/.nix-defexpr/channels/nixos";
|
||||
nixos-config.file = toString ./configuration.nix;
|
||||
|
||||
# TODO: how to make this nix-managed?
|
||||
snaplink.file = toString ./scripts/snaplink;
|
||||
secrets.pass = {
|
||||
dir = toString ./secrets;
|
||||
name = "hel1-a";
|
||||
|
10
scripts/snaplink
Executable file
10
scripts/snaplink
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
_fatal() { >&2 echo "ERROR: $*"; exit 1; }
|
||||
mountpoint=$(zfs list -H -t filesystem -o mountpoint "$SANOID_TARGET")
|
||||
[[ -n "$mountpoint" ]] || _fatal "expected non-empty $SANOID_TARGET"
|
||||
snap_path="$mountpoint/.zfs/snapshot/$SANOID_SNAPNAME"
|
||||
[[ -d "$snap_path" ]] || _fatal "expected to find a directory in $snap_path"
|
||||
link_path="$mountpoint/.snapshot-latest"
|
||||
ln -sf "$snap_path" "$link_path"
|
||||
>&2 printf "successfully created %s -> %s\n" "$link_path" "$snap_path"
|
Loading…
Reference in New Issue
Block a user