summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/canonical-vm-keyring.sh
blob: 8af901a268400ef12ac4b7d797e4570963ba0a2d (plain) (blame)
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
#!/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"