#!/bin/sh

set -e

CONFIG=/etc/glome/config
LOGIN=/usr/sbin/glome-login
PRIVATE=$AUTOPKGTEST_TMP/private

umask 077
PUBLIC_KEY=$(glome genkey | tee $PRIVATE | glome pubkey)
sed -i "s/^#\\?public-key = .*/public-key = $PUBLIC_KEY/" $CONFIG

socat TCP-LISTEN:23 EXEC:"/sbin/agetty -l $LOGIN -",pty,setsid,stderr &
SOCAT_PID=$!

expect <<EOF
spawn socat - TCP:localhost:23
expect_before default { exit 1 }
expect "login: "
send "root\\n"
expect -re "GLOME: (v2/.*/)"
set resp [exec glome login --key $PRIVATE \$expect_out(1,string)]
expect " "
send -- "\$resp\\n"
expect "# "
send "id\\n"
expect "root"
EOF

wait "$SOCAT_PID"
