repo: uritools
action: commit
revision: 
path_from: 
revision_from: d5fd6ce0bad91b1cd2e76515e1259fa6c93665a7:
path_to: 
revision_to: 
git.thebackupbox.net
uritools
git clone git://git.thebackupbox.net/uritools
commit d5fd6ce0bad91b1cd2e76515e1259fa6c93665a7
Author: epoch 
Date:   Mon Oct 25 07:42:50 2021 +0000

    added a program to convert a string with single-quotes into a shell-escaped version because writing that same sed regex over and over was a pain in the ass. also added a ssh handler. read before use. put them in Makefile

diff --git a/Makefile b/Makefile
index 1abb56a1651e5b806ec44f5b63d09155911dd1a7..
index ..090e2c046b2a6cb930f31422152d6ecf43208e44 100644
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,8 @@ clean:
 	rm -f *.o

 install: all
+	install -t $(PREFIX)/bin sqesc
+	install -t $(PREFIX)/bin ssh_hack
 	install -t $(PREFIX)/bin xwindowURI
 	install -t $(PREFIX)/bin uriqueryfilter
 	install -t $(PREFIX)/bin urimatch
diff --git a/sqesc.c b/sqesc.c
new file mode 100644
index 0000000000000000000000000000000000000000..6d7ba23a49510c86402ab1a6c0cf70c804047dec
--- /dev/null
+++ b/sqesc.c
@@ -0,0 +1,18 @@
+#include 
+#include 
+
+int print_escaped(char *s) {
+  char *p=0;
+  for(p=strchr(s,'\'');p && s && *p && *s;p=strchr(s,'\'')) {
+    *p=0;//null out this single-quote
+    printf("%s",s);
+    printf("'\\''");
+    s=p+1;
+  }
+  printf("%s",s);
+  return 0;
+}
+
+int main(int argc,char *argv[]) {
+  return print_escaped(argv[1]);
+}
diff --git a/ssh_hack b/ssh_hack
new file mode 100755
index 0000000000000000000000000000000000000000..e882cd2d8dc253922b39c1b88bbbf1be0c5f76ad
--- /dev/null
+++ b/ssh_hack
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+### we need to export each of the query string variables
+### then send them over ssh
+q="$(printf "%s\n" "$1" | uricut -q)"
+p="$(printf "%s\n" "$1" | uricut -p)"
+d="$(printf "%s\n" "$1" | uricut -d)"
+P="$(printf "%s\n" "$1" | uricut -P)"
+u="$(printf "%s\n" "$1" | uricut -u)"
+
+eval "$(printf '%s\n' "$q" | tr '&' ' ' | grep '[^ ]*=' | sed 's/^/export /g')"
+if [ "$p" ];then
+  p="$(uriunescape "$p")"
+fi
+if [ "$P" ]; then
+  HACK_PORT="-p $P"
+fi
+if [ "$u" ];then
+  HACK_USER="$u@"
+fi
+
+tmpfile=$(mktemp);
+printf '%s\n' "$q" | tr '&' '\n' | cut -d= -f1 | sed 's/^/SendEnv /g' > "$tmpfile"
+
+ssh -F "$tmpfile" -t ${HACK_PORT} ${HACK_USER}${d} ${p:1}
+#ssh -F <(printf '%s\n' "$q" | tr '&' '\n' | cut -d= -f1 | sed 's/^/SendEnv /g') -t ${HACK_PORT} ${HACK_USER}${d} ${p:1}
+#ssh -F <(printf '%s\n' "$q" | tr '&' '\n' | cut -d= -f1 | sed 's/^/SendEnv /g') -t ${HACK_PORT} ${HACK_USER}${d} ${p:1}

-----END OF PAGE-----