From 896161c483ceef3ed16e2f19a5c05106bed04512 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 21 Jun 2011 21:44:46 -0400 Subject: I can't believe I didn't have this in git before. --- Makefile | 38 ++++++++++++++++++++++++++++++++++++++ arg.c | 10 ++++++++++ chardiff.sh | 15 +++++++++++++++ chardiff_post.c | 25 +++++++++++++++++++++++++ chardiff_pre.c | 14 ++++++++++++++ daemon.sh | 12 ++++++++++++ emacsmail.sh | 10 ++++++++++ hangman.sh | 15 +++++++++++++++ newegg.sh | 18 ++++++++++++++++++ ord.c | 15 +++++++++++++++ sysfiles.sh | 11 +++++++++++ urldecode.sh | 5 +++++ v-editor.sh | 7 +++++++ v-www-browser.sh | 7 +++++++ whatismyip.sh | 2 ++ 15 files changed, 204 insertions(+) create mode 100644 Makefile create mode 100644 arg.c create mode 100644 chardiff.sh create mode 100644 chardiff_post.c create mode 100644 chardiff_pre.c create mode 100644 daemon.sh create mode 100644 emacsmail.sh create mode 100755 hangman.sh create mode 100755 newegg.sh create mode 100644 ord.c create mode 100644 sysfiles.sh create mode 100644 urldecode.sh create mode 100644 v-editor.sh create mode 100644 v-www-browser.sh create mode 100644 whatismyip.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..37508a6 --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +prefix ?= /usr/local +bindir ?= $(prefix)/bin + +INSTALL = install +RM = rm -f + +BINFILES = \ + arg \ + ord \ + urldecode \ + v-www-browser \ + v-editor \ + whatismyip \ + chardiff \ + chardiff_pre \ + chardiff_post \ + newegg \ + hangman \ + sysfiles \ + daemon \ + emacsmail + +all: build + +build: $(BINFILES) + +install: $(addprefix $(DESTDIR)$(bindir)/,$(BINFILES)) + +$(DESTDIR)$(bindir)/%: % | $(DESTDIR)$(bindir) + $(INSTALL) '$<' '$(@D)' + +$(DESTDIR)$(bindir): + mkdir -p '$@' + +clean: + $(RM) $(BINFILES) + $(RM) *~ + diff --git a/arg.c b/arg.c new file mode 100644 index 0000000..0a57cec --- /dev/null +++ b/arg.c @@ -0,0 +1,10 @@ +#include + +int +main(int argc, char* argv[]) { + int i; + for (i=1; i "$tmp1" + +tmp2=`mktemp` +chardiff_pre < "$file2" > "$tmp2" + +wdiff $@ "$tmp1" "$tmp2" | chardiff_post +rm "$tmp1" "$tmp2" + diff --git a/chardiff_post.c b/chardiff_post.c new file mode 100644 index 0000000..2145759 --- /dev/null +++ b/chardiff_post.c @@ -0,0 +1,25 @@ +#include + +extern char* program_name; + +int +main (int argc, char* argv[]) { + char c; + while ((c = getchar()) != EOF) { + if (c=='\\') { + char c2 = getchar(); + switch (c2) { + case 'n': putchar('\n'); break; + case '\\': putchar('\\'); break; + default: putchar(c2); break; + } + } + char n = getchar(); + if (n != '\n') { + printf( + "%s: found other character when expecting newline: %c", + argv[0], n); + } + } +} + diff --git a/chardiff_pre.c b/chardiff_pre.c new file mode 100644 index 0000000..8a68d54 --- /dev/null +++ b/chardiff_pre.c @@ -0,0 +1,14 @@ +#include + +int +main (int argc, char* argv[]) { + char c; + while ((c = getchar()) != EOF) { + switch (c) { + case '\n': puts("\\n"); break; + case '\\': puts("\\\\"); break; + default: printf("%c\n",c); break; + } + } +} + diff --git a/daemon.sh b/daemon.sh new file mode 100644 index 0000000..1d4965a --- /dev/null +++ b/daemon.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +TMP=${TMPDIR-/tmp}/daemon + +running=$(ps -u `whoami` -U `whoami` -o comm|grep -- "$1") +if [ -z "$running" ]; then + mkdir -p "$TMP" + echo "daemon: starting $1" + nohup $@ > "$TMP/$1.out" 2> "$TMP/$1.err" & +else + echo "daemon: $1 is already running" +fi \ No newline at end of file diff --git a/emacsmail.sh b/emacsmail.sh new file mode 100644 index 0000000..a815997 --- /dev/null +++ b/emacsmail.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# emacs-mailto-handler + +mailto=$1 +mailto="mailto:${mailto#mailto:}" +mailto=$(printf '%s\n' "$mailto" | sed -e 's/[\"]/\\&/g') +elisp_expr="(mailto-compose-mail \"$mailto\")" + +emacsclient -a "" -c -n --eval "$elisp_expr" \ + '(set-window-dedicated-p (selected-window) t)' diff --git a/hangman.sh b/hangman.sh new file mode 100755 index 0000000..5e0e138 --- /dev/null +++ b/hangman.sh @@ -0,0 +1,15 @@ +#!/bin/sh +word=$1 +not=$2 +flag=$3 + +temp=`mktemp` + +grep -i '^'"$word"'$' /usr/share/dict/words | grep -iv "['$not]" > "$temp" + +if [ "$flag" = '-l' ]; then + cat "$temp" | tr 'A-Z' 'a-z' | sed 's/\(.\)/\1\n/'g | sort | uniq -c | sort -n +else + cat "$temp" +fi +rm "$temp" diff --git a/newegg.sh b/newegg.sh new file mode 100755 index 0000000..235000f --- /dev/null +++ b/newegg.sh @@ -0,0 +1,18 @@ +#!/bin/bash +sed -n \ + -e 's/.*/URL\t\1/p' \ + -e 's/.*\(.*\)<\/span>/Desc\t\1/p' \ + -e 's/.*
  • \(.*\)<\/li>/Price\t\1/p' \ + -e 's/.*
  • \(.*\)Shipping<\/li>/Ship\t\1/p' | \ +sed \ + -e 's/<\/*[a-z]*>//g' \ + -e 's/(/(/g' \ + -e 's/)/)/g' \ + -e 's///\//g' \ + -e 's/Ship\tFree/Ship\t$0.00/' > newegg.$$.out +grep '^URL' newegg.$$.out | cut -f2 >newegg.$$.url +grep '^Desc' newegg.$$.out | cut -f2 >newegg.$$.desc +grep '^Price' newegg.$$.out | cut -f2 >newegg.$$.pri +grep '^Ship' newegg.$$.out | cut -f2 >newegg.$$.ship +paste newegg.$$.{url,desc,pri,ship} + diff --git a/ord.c b/ord.c new file mode 100644 index 0000000..fd2eadf --- /dev/null +++ b/ord.c @@ -0,0 +1,15 @@ +#include + +int +main (int argc, char* argv[]) { + if (argc<2) { return 1; } + + int i = 0; + char* delim = ""; + while (argv[1][i] != '\0') { + printf("%s%i",delim,(int)argv[1][i]); + delim=" "; + i++; + } +} + diff --git a/sysfiles.sh b/sysfiles.sh new file mode 100644 index 0000000..54229d8 --- /dev/null +++ b/sysfiles.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +cputime_file=${TMPDIR-/tmp}/cputime + +mpstat -P ALL 1 > "$cputime_file" & + +while true; do + cputime="`tail -n4 "$cputime_file"`" + echo "$cputime">"$cputime_file" + sleep 1 +done diff --git a/urldecode.sh b/urldecode.sh new file mode 100644 index 0000000..1666621 --- /dev/null +++ b/urldecode.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env php +