#!/usr/bin/env bash
set -euxo pipefail

blkdev="/dev/vdb"
blkdev2="/dev/vdc"
mnt=$(mktemp -d)
pw=$(genpass)
uuid=$(uuidgen)

# link user and session keyrings so that the key can be found by the kernel
keyctl link @u @s

sfdisk "$blkdev" <<EOF
label: gpt
type=linux, size=1G
type=linux, size=1G
type=linux
EOF

udevadm settle

echo "$pw" | bcachefs format \
    --verbose \
    --encrypted \
    --replicas=2 \
    --uuid "$uuid" \
    --fs_label test-fs \
    "${blkdev}"{1,2}

udevadm settle

echo "$pw" | bcachefs mount "UUID=$uuid" "$mnt"

bcachefs device add "$mnt" "${blkdev}3"
bcachefs device add "$mnt" "$blkdev2"

udevadm settle

blkid

keyctl search @u user "bcachefs:$uuid"

umount "$mnt"

bcachefs mount "UUID=$uuid" "$mnt"