From fa40a5cf3b0f3f46c54e61b29094c9ab486b3c9a Mon Sep 17 00:00:00 2001 From: ljf Date: Fri, 1 Sep 2017 03:10:31 +0200 Subject: [PATCH] [enh] Bootprompt is back --- bin/yunoprompt | 103 ++++++++++++++++++++++++++++++++++ data/other/yunoprompt.service | 14 +++++ debian/postinst | 3 + 3 files changed, 120 insertions(+) create mode 100644 bin/yunoprompt create mode 100644 data/other/yunoprompt.service diff --git a/bin/yunoprompt b/bin/yunoprompt new file mode 100644 index 000000000..212debdc9 --- /dev/null +++ b/bin/yunoprompt @@ -0,0 +1,103 @@ +#!/bin/bash + +ip=$(hostname --all-ip-address) + +i=0 +for key in /etc/ssh/ssh_host_*_key.pub ; do + output=$(ssh-keygen -l -f $key) + fingerprint[$i]=" - $(echo $output | cut -d' ' -f2) $(echo $output| cut -d' ' -f4)" + i=$(($i + 1)) +done + +cat > /etc/issue.net << EOF + '. ' '' -d. + /M+ h- .shh/ // /NMy- hMdosso + 'MN' /' '. -' :+ N: .Nmyym yo .MN' omNds: :mN' .sydMMMNds+ + sMh:/dN: :M' m: oMh' .M: dy h' MM: 'Mo oMh:-sMh /ddNdyyNM' + .sMMy' /M' /M- sMMd/sM- -Ms +M+ MM: +M/ mM' -Md 'NM. hM. + mM .M- :NN yMMMMMM: .dMNNMd' -/oMMmhmMMh /msosNM/ ::oMM. +M: + 'MN sMNMM+ mN:.+mM+ -+o/ :hMMm+- 'oN- :oyo- 'yho. - + hy /yy: :- -. -Nh ' + . + +IP: ${ip} +SSH fingerprints: +${fingerprint[0]} +${fingerprint[1]} +${fingerprint[2]} +${fingerprint[3]} +${fingerprint[4]} +EOF +if [[ ! -f /etc/yunohost/installed ]] +then + if [[ ! -f /etc/yunohost/from_script ]] + then +sleep 5 +chvt 2 +cat << EOF + '. ' '' -d. + /M+ h- .shh/ // /NMy- hMdosso + 'MN' /' '. -' :+ N: .Nmyym yo .MN' omNds: :mN' .sydMMMNds+ + sMh:/dN: :M' m: oMh' .M: dy h' MM: 'Mo oMh:-sMh /ddNdyyNM' + .sMMy' /M' /M- sMMd/sM- -Ms +M+ MM: +M/ mM' -Md 'NM. hM. + mM .M- :NN yMMMMMM: .dMNNMd' -/oMMmhmMMh /msosNM/ ::oMM. +M: + 'MN sMNMM+ mN:.+mM+ -+o/ :hMMm+- 'oN- :oyo- 'yho. - + hy /yy: :- -. -Nh ' + . + +IP: ${ip} +SSH fingerprints*: +${fingerprint[0]} +${fingerprint[1]} +${fingerprint[2]} +${fingerprint[3]} +${fingerprint[4]} +EOF + +echo -e "\e[m Post-installation \e[0m" +cat << EOF +Congratulations! YunoHost has been successfully installed. +Two more steps are required to activate the services of your server. +EOF +read -p "Proceed to post-installation? (y/n) " -n 1 + RESULT=1 + while [ $RESULT -gt 0 ]; do + if [[ $REPLY =~ ^[Nn]$ ]]; then + chvt 1 + exit 0 + fi + echo -e "\n" + /usr/bin/yunohost tools postinstall + let RESULT=$? + if [ $RESULT -gt 0 ]; then + echo -e "\n" + read -p "Retry? (y/n) " -n 1 + fi + done + fi +else # YunoHost is already post-installed + + domain=$(cat /etc/yunohost/current_host) +cat > /etc/issue << EOF + '. ' '' -d. + /M+ h- .shh/ // /NMy- hMdosso + 'MN' /' '. -' :+ N: .Nmyym yo .MN' omNds: :mN' .sydMMMNds+ + sMh:/dN: :M' m: oMh' .M: dy h' MM: 'Mo oMh:-sMh /ddNdyyNM' + .sMMy' /M' /M- sMMd/sM- -Ms +M+ MM: +M/ mM' -Md 'NM. hM. + mM .M- :NN yMMMMMM: .dMNNMd' -/oMMmhmMMh /msosNM/ ::oMM. +M: + 'MN sMNMM+ mN:.+mM+ -+o/ :hMMm+- 'oN- :oyo- 'yho. - + hy /yy: :- -. -Nh ' + . + +IP: ${ip} +SSH fingerprints: +${fingerprint[0]} +${fingerprint[1]} +${fingerprint[2]} +${fingerprint[3]} +${fingerprint[4]} +EOF + + +fi + diff --git a/data/other/yunoprompt.service b/data/other/yunoprompt.service new file mode 100644 index 000000000..3c4df50f9 --- /dev/null +++ b/data/other/yunoprompt.service @@ -0,0 +1,14 @@ +[Unit] +Description=YunoHost boot prompt +After=getty@tty2.service + +[Service] +Type=simple +ExecStart=/usr/bin/yunoprompt +StandardInput=tty +TTYPath=/dev/tty2 +TTYReset=yes +TTYVHangup=yes + +[Install] +WantedBy=default.target diff --git a/debian/postinst b/debian/postinst index 7e91ffbb3..39063694b 100644 --- a/debian/postinst +++ b/debian/postinst @@ -24,6 +24,9 @@ do_configure() { "consider to start it by doing 'service yunohost-firewall start'." fi + # Yunoprompt + systemctl enable yunoprompt.service + # remove old PAM config and update it [[ ! -f /usr/share/pam-configs/my_mkhomedir ]] \ || rm /usr/share/pam-configs/my_mkhomedir