diff options
| author | Mattias Andrée <m@maandree.se> | 2026-02-22 13:50:59 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-02-22 13:50:59 +0100 |
| commit | 5593186c998c3f63c7abadd3eaa97e55004fc182 (patch) | |
| tree | 29a236c52d30257ea67d933fbd7bdf14bc400258 /got | |
| parent | Fix issue-file example, it stopped working (diff) | |
| download | gates-of-tartaros-5593186c998c3f63c7abadd3eaa97e55004fc182.tar.gz gates-of-tartaros-5593186c998c3f63c7abadd3eaa97e55004fc182.tar.bz2 gates-of-tartaros-5593186c998c3f63c7abadd3eaa97e55004fc182.tar.xz | |
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'got')
| -rwxr-xr-x | got | 76 |
1 files changed, 30 insertions, 46 deletions
@@ -2,7 +2,7 @@ # gates-of-tartaros – Minimal replacement for agetty with SSH support # -# Copyright © 2013, 2014, 2015 Mattias Andrée (maandree@member.fsf.org) +# Copyright © 2013, 2014, 2015 Mattias Andrée (m@maandree.se) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,8 +21,8 @@ # Read the parameters: the first is the tty, the rest are exports tty="$1" shift 1 -if [ ! $# = 0 ]; then - export "$@" +if test ! $# = 0; then + export "$@" fi # Change TTY @@ -35,77 +35,62 @@ exec 2>&0 tty_settings="$(stty --save)" -# This is required if you want to use dash (and ash, since dash -# [dash not ash] does not recognise $''). -echo () -{ - @echo@ "$@" -} - - # Function used for printing information on the terminal for the user display_function=_display -_display () -{ - echo -en '\e[H\e[2J\e[?0c' - echo -e "\e[${ANSI_COLOR}m${NAME} (${tty})\e[00m" - echo - echo -n 'Login: ' +_display () { + printf '\033[H\033[2J\033[?0c' + printf "\033[%sm%s (%s)\033[0m\n" "${ANSI_COLOR}" "${NAME}" "${tty}" + printf '\nLogin: ' } # Function for reading the username form the terminal read_function=_read -_read () -{ - read user +_read () { + read user } # Function for logging in the user login_function=_login -_login () -{ - if [ ! "${user%@*}" = "${user}" ]; then - $_use_ssh_function - elif [ ! "${user}" = "" ] && [ "${user%%-*}" = "" ]; then - $_lock_tty_function - else - $_use_login_function - fi +_login () { + if test ! "${user%@*}" = "${user}"; then + $_use_ssh_function + elif test -n "${user}" && test -z "${user%%-*}"; then + $_lock_tty_function + else + $_use_login_function + fi } # Function for locking the TTY _lock_tty_function=_lock_tty -_lock_tty () -{ - stty -icanon -echo -isig -ixon -ixoff -ixany - echo -e '\e[01;31mNice try! Sleeping for 10 minutes...\e[00m' - sleep 600 +_lock_tty () { + stty -icanon -echo -isig -ixon -ixoff -ixany + printf '\033[01;31mNice try! Sleeping for 10 minutes...\033[0m\n' + sleep 600 } # Function for performing the log in with `ssh` _use_ssh_function=_use_ssh -_use_ssh () -{ - setsid -c ssh ${user} || sleep 3 - # The sleep allows you to see any error you made +_use_ssh () { + setsid -c ssh ${user} || sleep 3 + # The sleep allows you to see any error you made } # Function for performing the log in with `login` _use_login_function=_use_login -_use_login () -{ - setsid -c login -- "${user}" +_use_login () { + setsid -c login -- "${user}" } # Load OS information and extensions NAME="$(uname -o)" ANSI_COLOR='01;34' # must be exactly ANSI_COLOR as it is defined in /etc/os-release -if [ -f "@etc@/os-release" ]; then - . "@etc@/os-release" +if test -f "@etc@/os-release"; then + . "@etc@/os-release" fi -if [ -f "@etc@/@command@rc" ]; then - . "@etc@/@command@rc" +if test -f "@etc@/@command@rc"; then + . "@etc@/@command@rc" fi # Let the user log in @@ -115,4 +100,3 @@ $login_function # Restore the TTY settings for the next run stty "${tty_settings}" - |
