From e92af1f7088cc5b6b40a5ceba275a197c305de62 Mon Sep 17 00:00:00 2001
From: katherine <shmibs@shmibbles.me>
Date: Sat, 19 Mar 2016 22:17:28 -0700
Subject: snapshot

lots of random things changed; forgot to update for a while again.
moving things to .config/init/funcs is one important thing; means
being able to use those shell scripts anywhere, like ranger or whatever
---
 .config/init/funcs/send | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100755 .config/init/funcs/send

(limited to '.config/init/funcs/send')

diff --git a/.config/init/funcs/send b/.config/init/funcs/send
new file mode 100755
index 0000000..88b3dbb
--- /dev/null
+++ b/.config/init/funcs/send
@@ -0,0 +1,48 @@
+#!/bin/zsh
+# quickly send a file to hosted tmp dir
+
+local name
+local basename
+local escapes
+typeset -A escapes
+escapes=(' ' '%20' '"' '%22' '#' '%23' '$' '%24'
+		 '%' '%25' '&' '%26' "'" '%27' '+' '%2b'
+		 ',' '%2c' '/' '%2f' ':' '%3a' ';' '%3b'
+		 '<' '%3c' '=' '%3d' '>' '%3e' '?' '%3f'
+		 '@' '%40' '[' '%5b' '\' '%5c' ']' '%5d'
+		 '^' '%5e' '`' '%60' '{' '%7b' '|' '%7c'
+		 '}' '%7d' '~' '%7e')
+if [[ "$1" ]]; then
+	for i in "$@"; do
+		[[ -f "$i" ]] \
+			|| { echo "file '$i' not found"; return 1 }
+	done
+	scp "$@" shmibbles.me:http/tmp/ >/dev/null 2>&1 \
+		|| { echo "sending files failed"; return 1 }
+	if [[ $? -eq 0 ]]; then
+		for name in "$@"
+		do
+			basename=${name:t}
+			ssh shmibbles.me "cd http/tmp; chmod o+r \"${basename//\"/\\\"}\""
+			if [[ $? -eq 0 ]]; then
+				{
+					printf "%s" 'https://shmibbles.me/tmp/'
+					for c in "${(s::)basename}"; do 
+						if [[ "${escapes[$c]}" == "" ]]; then
+							printf "%s" "$c"
+						else
+							printf "%s" "${escapes[$c]}"
+						fi
+					done
+				} | tee >(xclip -i -selection clipboard) \
+					| xclip -i -selection primary
+			else
+				echo "making '$name' readable failed"
+				return 1
+			fi
+		done
+	fi
+else
+	echo "specify at least one file to send"
+	return 1
+fi
-- 
cgit v1.2.3