diff --git a/Makefile b/Makefile index bbd82f7..428b6c7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -install: bin templates man completion files skel +install: bin templates man completion files efingerd bin: stow -t "/usr/local/bin" bin @@ -19,14 +19,16 @@ files: mkdir -p "/usr/share/games/fortunes" cd files && stow -t "/usr/share/games/fortunes" fortunes -skel: - rsync -avzh skel/ /etc/skel/ +efingerd: + mkdir -p "/etc/efingerd" + stow -t "/etc/efingerd" efingerd uninstall: stow -t "/usr/local/bin" -D bin stow -t "/etc/templates" -D templates stow -t "/usr/share/man/man1/" -D man stow -t "/etc/bash_completion.d" -D completion + stow -t "/etc/efingerd" -D efingerd cd files && stow -t "/usr/share/games/fortunes" -D fortunes -.PHONY: bin templates man completion files skel +.PHONY: bin templates man completion files efingerd diff --git a/bin/updatefinger b/bin/updatefinger deleted file mode 100755 index 29e6c34..0000000 --- a/bin/updatefinger +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -run_user=$(id -u) -if [ "$run_user" -eq 0 ]; then - for d in /home/* - do - if [ ! -f "${d}/.efingerd" ]; then - # if no .efingerd file, add one - printf "%s - no .efingerd found\\n" "$d" - owner="$(basename "$d")" - cp "/etc/skel/.efingerd" "${d}/.efingerd" - chown "$owner" "${d}/.efingerd" - chgrp "$owner" "${d}/.efingerd" - else - version="$(sed -n '2{p;q}' "${d}/.efingerd")" - if [ "$version" = "# version 1" ]; then - printf "%s - version 1\\n" "$d" - else - printf "%s - customized\\n" "$d" - fi - fi - done -fi diff --git a/efingerd/list b/efingerd/list new file mode 100755 index 0000000..dc47cd4 --- /dev/null +++ b/efingerd/list @@ -0,0 +1,8 @@ +#!/bin/sh + +. /etc/efingerd/log + +cat <>/var/log/efingerd.log diff --git a/efingerd/luser b/efingerd/luser new file mode 100755 index 0000000..532ebec --- /dev/null +++ b/efingerd/luser @@ -0,0 +1,34 @@ +#!/bin/sh + +# $1 = identity of remote user fingering you +# $2 = address of remote machine fingering you +# $3 = name of user being fingered (you!) + +. /etc/efingerd/log + +if [ "$3" = "root" ]; then + printf "QEC STATUS: ERROR\\nROOT ACCESS DENIED.\\n" +else + user_folder="/home/${3}" + # Prints current user's ship roster + printf "Ships registered to user \"%s\"\\n" "$3" + /usr/local/bin/roster "$3" | awk '{$1=">>"; print $0}' + + # This portion is maintained for compatability with fellowsh + # a tildeverse/pubnix social network built on fingerd + printf "Plan:\\n" + if [ -f "${user_folder}/.plan" ]; then + cat "${user_folder}/.plan" + else + printf "No Plan.\\n" + fi + printf "Project:\\n" + if [ -f "${user_folder}/.project" ]; then + cat "${user_folder}/.project" + else + printf "No Project.\\n" + fi + if [ -f "${user_folder}/.tz" ]; then + printf "Timezone: %s\\n" "$(cat "${user_folder}/.tz")" + fi +fi diff --git a/efingerd/nouser b/efingerd/nouser new file mode 100755 index 0000000..f2cdefe --- /dev/null +++ b/efingerd/nouser @@ -0,0 +1,37 @@ +#!/bin/sh + +if [ "$3" = "latest" ]; then + echo "The latest messages logged to the QEC:" + /usr/local/bin/latest + exit 0 +fi + +if [ "$3" = "time" ]; then + echo The time is... + date + exit 0 +fi + +if [ "$3" = "ping" ]; then + echo "PONG!" + ping -c 5 "$2" + exit 0 +fi + +if [ "$3" = "fortune" ]; then + /usr/games/fortune + exit 0 +fi + +if [ "$3" = "uptime" ]; then + /usr/bin/uptime + exit 0 +fi + +. /etc/efingerd/log + +cat <