aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgot41
-rwxr-xr-xgot.py39
2 files changed, 80 insertions, 0 deletions
diff --git a/got b/got
new file mode 100755
index 0000000..7c88461
--- /dev/null
+++ b/got
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# gates-of-tartaros – Minimal replacement for agetty with SSH support
+#
+# Copyright © 2013 Mattias Andrée (maandree@member.fsf.org)
+#
+# 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
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+
+tty="$1"
+shift 1
+
+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"
+fi
+
+if [ -f "/etc/gotrc" ]; then
+ . "/etc/gotrc"
+else
+ echo -en '\e[H\e[2J'
+ echo -e "\e[${ANSI_COLOR}m${NAME} (${tty})\e[00m"
+ echo
+ echo -n 'Login: '
+fi
+
+"$0".py "$@" <> "/dev/${tty}" 2>&1
+
diff --git a/got.py b/got.py
new file mode 100755
index 0000000..ce2b403
--- /dev/null
+++ b/got.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+'''
+gates-of-tartaros – Minimal replacement for agetty with SSH support
+
+Copyright © 2013 Mattias Andrée (maandree@member.fsf.org)
+
+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
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+'''
+
+
+import sys
+import os
+from subprocess import Popen
+
+for arg in sys.argv[1:]:
+ if "=" in arg:
+ os.putenv(arg.split("=")[0], "=".join(arg.split("=")[1:]))
+
+def spawn(cmd):
+ Popen(cmd, stdin = sys.stdin, stdout = sys.stdout, stderr = sys.stderr).wait()
+
+user = input()
+if "@" in user:
+ os.putenv("GOT_COMMAND", "ssh " + user)
+ spawn(["login", "-p", "-f", "sshlogin"])
+else:
+ spawn(["login"] + user.split(" "))
+