Browse Source

autodetect_email from .ssh/authorized_keys

main
pvincent 9 months ago
parent
commit
c41d2af86b
  1. 38
      lib/install.sh
  2. 2
      templates/etc/defaults.yaml.j2

38
lib/install.sh

@ -226,7 +226,6 @@ function check_credential {
check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.username' && check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.username' &&
check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.shadow' && check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.shadow' &&
check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.email' check_yaml_defined_value /etc/miaou/defaults.yaml 'credential.email'
} }
function check_target() { function check_target() {
@ -260,7 +259,7 @@ function miaou_configfiles() {
if [[ ! -f /etc/miaou/defaults.yaml ]]; then if [[ ! -f /etc/miaou/defaults.yaml ]]; then
echo -n "building /etc/miaou/defaults.yaml for the first time..." echo -n "building /etc/miaou/defaults.yaml for the first time..."
shadow_passwd=$(sudo grep "$CURRENT_USER" /etc/shadow | cut -d ':' -f2) shadow_passwd=$(sudo grep "$CURRENT_USER" /etc/shadow | cut -d ':' -f2)
env current_user="$CURRENT_USER" shadow_passwd="$shadow_passwd" tera -e --env-key env --env-only -t "$MIAOU_BASEDIR/templates/etc/defaults.yaml.j2" -o /etc/miaou/defaults.yaml >/dev/null
env current_user="$CURRENT_USER" shadow_passwd="$shadow_passwd" valid_email="$valid_email" tera -e --env-key env --env-only -t "$MIAOU_BASEDIR/templates/etc/defaults.yaml.j2" -o /etc/miaou/defaults.yaml >/dev/null
yq ".target=\"$TARGET\"" /etc/miaou/defaults.yaml -i yq ".target=\"$TARGET\"" /etc/miaou/defaults.yaml -i
PREFIX="" echoinfo OK PREFIX="" echoinfo OK
fi fi
@ -339,8 +338,7 @@ EOF
} }
function extra_dev_desktop { function extra_dev_desktop {
# detect if DEV
# detect if DESKTOP
# FIXME: detect if DEV && DESKTOP_USAGE to install spicy-client and other desktop tools
: :
} }
@ -363,15 +361,13 @@ EOF
fi fi
} }
function ask_for_credential {
local PREFIX="ask:credential"
if ! check_credential 2>/dev/null; then
echo "further details required, please replace any <TO BE DEFINED> by a proper value ...press any key to open editor"
read -rn1
editor /etc/miaou/defaults.yaml
fi
check_credential
echo "successfully checked!"
function ask_for_email {
local PREFIX="install:ask_for_email"
valid_email=$(auto_detect_email)
while ! is_email_valid "$valid_email"; do
echo -n "mandatory email: "
read -rei "$valid_email" valid_email
done
} }
function preload_bookworm_image { function preload_bookworm_image {
@ -393,7 +389,15 @@ function is_email_valid {
} }
function auto_detect_email { function auto_detect_email {
:
found_email=""
if [[ -f $HOME/.ssh/authorized_keys ]]; then
while IFS= read -r line; do
found_email="$line"
is_email_valid "$found_email" && break
done < <(cut -d ' ' -f3 <"$HOME/.ssh/authorized_keys")
fi
builtin echo "$found_email"
} }
### MAIN ### MAIN
@ -423,8 +427,11 @@ else
TARGET=${1:-} TARGET=${1:-}
CURRENT_USER=$(id -un) CURRENT_USER=$(id -un)
sudo_required
check_normal_user
check_target check_target
ask_for_email
sudo_required
install_miaou_bash install_miaou_bash
install_mandatory_commands install_mandatory_commands
prepare_toolbox prepare_toolbox
@ -435,7 +442,6 @@ else
miaou_resolver miaou_resolver
miaou_evalfrombashrc miaou_evalfrombashrc
miaou_configfiles miaou_configfiles
ask_for_credential
opt_link opt_link
extra_dev_desktop extra_dev_desktop

2
templates/etc/defaults.yaml.j2

@ -5,4 +5,4 @@ containers:
credential: credential:
username: {{env.current_user}} username: {{env.current_user}}
shadow: {{env.shadow_passwd}} shadow: {{env.shadow_passwd}}
email: TO BE DEFINED # example user@domain.tld
email: {{env.valid_email}}
Loading…
Cancel
Save