nix-config/home/wallets/mount_wallets.nix

35 lines
1.2 KiB
Nix

{ dev_name, uuid, pw_name, opts, config, pkgs, ... }:
let
device = "/dev/mapper/${dev_name}";
home = "${config.home.homeDirectory}";
shell = "${pkgs.dash}/bin/dash";
cryptsetup = "${pkgs.cryptsetup}/bin/cryptsetup";
mkdir = "${pkgs.coreutils}/bin/mkdir";
pass = "${pkgs.pass}/bin/pass";
sudo = "/run/wrappers/bin/doas";
mount = "/run/wrappers/bin/mount";
in
pkgs.writeScriptBin "mount_wallets" ''
#!${shell}
if [ ! -b "${device}" ]; then
${pass} "${pw_name}" | ${sudo} ${cryptsetup} open "UUID=${uuid}" ${dev_name}
fi
${mkdir} -p \
"${home}/.walletwasabi" \
"${home}/.local/share/Bisq" \
"${home}/.bitmonero" \
"${home}/monero-storage" \
"${home}/.electrumfair"
${sudo} ${mount} ${device} -o subvol=@wasabi,${opts} "${home}/.walletwasabi"
${sudo} ${mount} ${device} -o subvol=@bisq,${opts} "${home}/.local/share/Bisq"
${sudo} ${mount} ${device} -o subvol=@monero/@bitmonero,${opts} "${home}/.bitmonero"
${sudo} ${mount} ${device} -o subvol=@monero/@monero-storage,${opts} "${home}/monero-storage"
${sudo} ${mount} ${device} -o subvol=@electrumfair,${opts} "${home}/.electrumfair"
''