summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/canonical-vm-keyring.sh
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:37 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:37 +0100
commitf25d094d0652e8dedff206ca56671b3548f755ff (patch)
tree10bdacf9ba14c03e298a196d3d23c5a4ab8fef47 /scripts/canonical-vm-keyring.sh
parent0b0ebfe0b6a77f07fe6c92f0c9e5312a330e8196 (diff)
downloaddotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.tar.gz
dotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.tar.bz2
dotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.zip
Add a disposable Canonical desktop test VM
Diffstat (limited to 'scripts/canonical-vm-keyring.sh')
-rw-r--r--scripts/canonical-vm-keyring.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/canonical-vm-keyring.sh b/scripts/canonical-vm-keyring.sh
new file mode 100644
index 0000000..8af901a
--- /dev/null
+++ b/scripts/canonical-vm-keyring.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+set -euo pipefail
+test "$(id -u)" = 0
+test -f /etc/canonical-lab
+systemd-detect-virt --vm --quiet
+home=/home/canonical-test
+key=$home/.local/state/canonical-lab/keyring-password
+test ! -f "$key" || exit 0
+systemctl stop gdm
+loginctl terminate-user canonical-test
+umask 077
+install -d -o canonical-test -g canonical-test "$home/.local/state/canonical-lab"
+if test -d "$home/.local/share/keyrings"; then
+ test ! -e "$home/.local/share/keyrings-before-lab-unlock"
+ mv "$home/.local/share/keyrings" "$home/.local/share/keyrings-before-lab-unlock"
+fi
+cat >"$key"
+test -s "$key"
+chown canonical-test:canonical-test "$key"
+dropin=$home/.config/systemd/user/gnome-keyring-daemon.service.d
+install -d -o canonical-test -g canonical-test "$dropin"
+cat >"$dropin/lab.conf" <<'EOF'
+[Service]
+ExecStart=
+ExecStart=/usr/bin/gnome-keyring-daemon --foreground --components=pkcs11,secrets --control-directory=%t/keyring --unlock
+StandardInput=file:%h/.local/state/canonical-lab/keyring-password
+EOF
+chown canonical-test:canonical-test "$dropin/lab.conf"