aboutsummaryrefslogtreecommitdiffstats
path: root/got
diff options
context:
space:
mode:
Diffstat (limited to 'got')
-rwxr-xr-xgot76
1 files changed, 30 insertions, 46 deletions
diff --git a/got b/got
index 62940dd..81a6350 100755
--- a/got
+++ b/got
@@ -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}"
-