build: gpg-agent run fix & automated login process

The gpg-agent could not start if the /root is mounted by docker when
the external path is long enough, a workaround is to use a different
GNUPGHOME for gpg key generation, and copy generated files to
/root/.gnupg afterwards

bonus: thanks to expect, we can a automated login process, if both
PROTONMAIL_USERNAME and PROTONMAIL_PASSWORD are set

Signed-off-by: Jeffrey Stoke <me@arhat.dev>
This commit is contained in:
Jeffrey Stoke
2021-06-14 22:38:44 +02:00
parent 8fa301b5a3
commit da0dfab9d3
6 changed files with 112 additions and 18 deletions

55
build/login.exp Normal file
View File

@@ -0,0 +1,55 @@
#!/usr/bin/expect -f
set timeout 15;
spawn {*}$argv ;
# wait for inital prompt
expect {
">>> " {
# protonmail-bridge started without error, do nothing
}
timeout {
exit 2
}
}
send -- "login\r"
expect {
"Username: " {
# login start, enter username
}
timeout {
exit 2
}
}
send -- "$env(PROTONMAIL_USERNAME)\r"
expect {
"Password: " {
# username entered, enter password
}
timeout {
exit 2
}
}
send -- "$env(PROTONMAIL_PASSWORD)\r"
expect {
"was added successfully." {
# login ok
exit 0
}
"Server error" {
# login failed
exit 1
}
timeout {
exit 2
}
}