aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/overlays/kookie/dcutil/default.nix
blob: 6f8e2bb2864995853bd8a2937ea9971cde1b0f25 (plain)
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
/* DATACORE UTILS
 * 
 * A tool that makes it easier to deal with decrypting 
 * and re-crypting the datacore storage pool.
 */


{ writeShellScriptBin, zfs }: writeShellScriptBin "dcutils" ''
  set -eo pipefail

  function open_pool {
    ${zfs}/bin/zfs load-key datacore
    ${zfs}/bin/zfs mount datacore
    ${zfs}/bin/zfs mount datacore/backup
    ${zfs}/bin/zfs mount datacore/media
    ${zfs}/bin/zfs mount datacore/sync
  }

  function close_pool {
    ${zfs}/bin/zfs umount datacore
    ${zfs}/bin/zfs umount datacore/backup
    ${zfs}/bin/zfs umount datacore/media
    ${zfs}/bin/zfs umount datacore/sync
    ${zfs}/bin/zfs unload-key datacore
  }

  case "$1" in
    open*) open_pool ;;
    close*)  close_pool ;;
    *) echo "Usage: <dcutils> [open|close]"
  esac
''