From dd820bf691bd85ab2f7285a509c999967ef61d47 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Sat, 8 Oct 2016 12:18:21 +1100 Subject: [PATCH] Initial commit, with only sav-quotes script --- .stow-rename | 2 + config/zsh/functions/_sav-quotes | 6 +++ local/bin/sav-quotes | 44 +++++++++++++++++++ local/share/sav-quotes/format-bash-quotes.sed | 4 ++ local/share/sav-quotes/format-qdb-quotes.sed | 10 +++++ .../share/sav-quotes/format-xkcdb-quotes.sed | 6 +++ local/share/sav-quotes/get-bash-quotes | 5 +++ local/share/sav-quotes/get-qdb-quotes | 5 +++ .../share/sav-quotes/get-whatthecommit-quotes | 6 +++ local/share/sav-quotes/get-xkcdb-quotes | 5 +++ 10 files changed, 93 insertions(+) create mode 100644 .stow-rename create mode 100644 config/zsh/functions/_sav-quotes create mode 100755 local/bin/sav-quotes create mode 100644 local/share/sav-quotes/format-bash-quotes.sed create mode 100644 local/share/sav-quotes/format-qdb-quotes.sed create mode 100644 local/share/sav-quotes/format-xkcdb-quotes.sed create mode 100755 local/share/sav-quotes/get-bash-quotes create mode 100755 local/share/sav-quotes/get-qdb-quotes create mode 100755 local/share/sav-quotes/get-whatthecommit-quotes create mode 100755 local/share/sav-quotes/get-xkcdb-quotes diff --git a/.stow-rename b/.stow-rename new file mode 100644 index 0000000..51f56dd --- /dev/null +++ b/.stow-rename @@ -0,0 +1,2 @@ +config => .config +local => .local diff --git a/config/zsh/functions/_sav-quotes b/config/zsh/functions/_sav-quotes new file mode 100644 index 0000000..4cee273 --- /dev/null +++ b/config/zsh/functions/_sav-quotes @@ -0,0 +1,6 @@ +#compdef sav-quotes + +_sav-quotes() { + local sources="$(sav-quotes --completion)" + _arguments "*: :($sources)" +} diff --git a/local/bin/sav-quotes b/local/bin/sav-quotes new file mode 100755 index 0000000..18da068 --- /dev/null +++ b/local/bin/sav-quotes @@ -0,0 +1,44 @@ +#!/usr/bin/env zsh +list_srcs() { + local src + for src in $quotesrc_dir/get-*-quotes; do + src=${src:t} + src=${src#get-} + src=${src%-quotes} + print $src + done +} +save_from_src() { + mkdir -p ${dest:h} + rm $dest + + for i in {1..5} + do + $src >> $dest + wc -l $dest + done + strfile $dest +} + +quotesrc_dir=${XDG_DATA_HOME:=~/.local/share}/sav-quotes +dest=${XDG_CACHE_HOME:=~/.cache}/sav-quotes/quotes +src_spec=${1:-bash} + +if [[ $src_spec = --completion ]]; then + list_srcs + exit 0 +fi + +src=$quotesrc_dir/get-${src_spec}-quotes +if [[ -x $src ]]; then + if ! $src &>/dev/null; then + print Could not connect to quotesrc $src_spec >&2 + exit 1 + fi + save_from_src $src +else + echo "Invalid quotesrc specified: $src_spec" + echo "Valid quotesrcs are:" + list_srcs + exit 1 +fi diff --git a/local/share/sav-quotes/format-bash-quotes.sed b/local/share/sav-quotes/format-bash-quotes.sed new file mode 100644 index 0000000..d9601e5 --- /dev/null +++ b/local/share/sav-quotes/format-bash-quotes.sed @@ -0,0 +1,4 @@ + s/\#.*/%/ + 1,/Add Quote \/ ModApp \/ Search /d + /Home \/ Latest /,$d + /^ *$/d;s/^ *// diff --git a/local/share/sav-quotes/format-qdb-quotes.sed b/local/share/sav-quotes/format-qdb-quotes.sed new file mode 100644 index 0000000..a986d14 --- /dev/null +++ b/local/share/sav-quotes/format-qdb-quotes.sed @@ -0,0 +1,10 @@ +# first we remove indentation from the start of lines +s/^ *// +# Convert the quote headers to % +1,$ s/^\#.*/%/ +s/Comment:/\nComment:/ +s/- \[.*// +/\[\s\+\]/d +1,/TodayLatestBestTopWorst/d +/save page/,$d +/^ *$/d diff --git a/local/share/sav-quotes/format-xkcdb-quotes.sed b/local/share/sav-quotes/format-xkcdb-quotes.sed new file mode 100644 index 0000000..7097aaa --- /dev/null +++ b/local/share/sav-quotes/format-xkcdb-quotes.sed @@ -0,0 +1,6 @@ +# first we remove indentation from the start of lines +s/^ *// +# Convert the quote headers to % +1,$ s/^\#[0-9].*/%/ +# and remove the header +/%/,$!d diff --git a/local/share/sav-quotes/get-bash-quotes b/local/share/sav-quotes/get-bash-quotes new file mode 100755 index 0000000..3e37a9e --- /dev/null +++ b/local/share/sav-quotes/get-bash-quotes @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +links -dump http://bash.org/\?random1 | sed -f "$dir/format-bash-quotes.sed" +exit ${PIPESTATUS[0]} diff --git a/local/share/sav-quotes/get-qdb-quotes b/local/share/sav-quotes/get-qdb-quotes new file mode 100755 index 0000000..443e7d6 --- /dev/null +++ b/local/share/sav-quotes/get-qdb-quotes @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +links -dump http://www.qdb.us/random | sed -f "$dir/format-qdb-quotes.sed" +exit ${PIPESTATUS[0]} diff --git a/local/share/sav-quotes/get-whatthecommit-quotes b/local/share/sav-quotes/get-whatthecommit-quotes new file mode 100755 index 0000000..7d7d35d --- /dev/null +++ b/local/share/sav-quotes/get-whatthecommit-quotes @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +for i in {1..5}; do + curl -s http://whatthecommit.com/index.txt || exit 1 + echo "%" +done diff --git a/local/share/sav-quotes/get-xkcdb-quotes b/local/share/sav-quotes/get-xkcdb-quotes new file mode 100755 index 0000000..4daca26 --- /dev/null +++ b/local/share/sav-quotes/get-xkcdb-quotes @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +curl http://www.xkcdb.com/\?random1 | hxnormalize -i 0 -l 99999999999 -x | hxremove br | hxselect -cs '\n%\n' 'span.quote' | hxunent +exit ${PIPESTATUS[0]}