list

ssh-client

Unnamed repository; edit this file 'description' to name the repository.

curl -O https://dovel.email/ssh-client.tar.gz tar.gz

f7b8a8f

Author: brian (git@myr.sh)

Date: Sun Mar 24 17:17:40 2024 -0300

Parent:

Added initial client

Diff

dovel-ssh

diff --git a/dovel-ssh b/dovel-ssh
new file mode 100755
index 0000000..0afe3d7
--- /dev/null
+++ b/dovel-ssh
@@ -0,0 +1,61 @@
+#!/usr/bin/sh
+
+. "${XDG_CONFIG_HOME:-$HOME/.config}/dovel/ssh.conf"
+
+lastseen="${lastseen:-0}"
+
+dirs="$(ssh "$SERVER" "ls -1t $MAILROOT/")"
+for dir in $dirs
+do
+	dec="$(printf "$dir" | base64 -d)"
+	printf "%d	%s\n" "$((++i))" "$dec"
+done
+
+printf "Type dir number: "
+read -r num
+i=0
+for dir in $dirs
+do
+	[ $((++i)) = $num ] && break
+done
+echo "selected $dir"
+
+threads="$(ssh "$SERVER" "ls -1t $MAILROOT/$dir/")"
+i=0
+for thread in $threads
+do
+	dec="$(printf "$thread" | base64 -d)"
+	printf "%d	%s\n" "$((++i))" "$dec"
+done
+
+printf "Select thread: "
+read -r num
+i=0
+for thread in $threads
+do
+	[ $((++i)) = $num ] && break
+done
+
+emails="$(ssh "$SERVER" "ls -1tr $MAILROOT/$dir/$thread/")"
+for email in $emails
+do
+	printf -- "------------------------------------------------------------\n"
+	ssh "$SERVER" "cat $MAILROOT/$dir/$thread/$email" | while read -r k v
+	do
+		case "$k" in
+			"From:") from="$v" ;;
+			"Date:") date="$v" ;;
+			"Content-Type:") ctype="$v" ;;
+			"Content-Transfer-Encoding:") tenc="$v" ;;
+			"")
+				printf "From: %s\nSent: %s\n\n" "$from" "$date"
+				
+				[ ${ctype##text/plain*} ] && break
+				case "$tenc" in
+					"base64") base64 -d ;;
+					*) cat ;;
+				esac
+		esac
+	done
+done
+