[options and function Panu Kalliokoski **20110322162308 Ignore-this: 187060ebbea06621f2eda6ad54b822fa ] { hunk ./wg 7 +htmlformatter() { + links -force-html -dump $@ +} + +formattedtidy() { + sed -e '/^References$/,$ d' $@ +} + +formattedurlscan() { + sed -e '1,/^ Visible links$/d;s/^\(...[0-9]\)\. /\1 /' $@ +} + +texturlscan () { + grep -o 'http://[^ ]*' $@ | cat -n +} + +urlbynum () { + $HTMLFORMATTER "$2" | $FORMATTEDURLSCAN | \ + sed -ne "/^ *$1 /,$ p" | grep -o 'http://.*' | head -1 +} + +make_track_line () { + echo -n "
  • " + grep -A4 '' "$1" | tr -s \\012 ' ' | \ + LANG=C sed -e 's/^.*<title>//;s/<.*$//' + echo " (`cat $2`)</a></li>" +} + hunk ./wg 38 -test -z "$WGET" && WGET=wget -test -z "$HTMLFORMATTER" && HTMLFORMATTER=links -test -z "$URLSCAN" && URLSCAN="grep -o 'http://[^ ]*'" +test -z "$WGET" && WGET="wget -k" +test -z "$HTMLFORMATTER" && HTMLFORMATTER=htmlformatter +test -z "$FORMATTEDTIDY" && FORMATTEDTIDY=formattedtidy +test -z "$FORMATTEDURLSCAN" && FORMATTEDURLSCAN=formattedurlscan +test -z "$TEXTURLSCAN" && TEXTURLSCAN=texturlscan +test -z "$WG_DIR" && WG_DIR="$HOME/.wg" +test -z "$WG_BOOKMARK" && WG_BOOKMARK="$WG_DIR/bookmark" +test -z "$WG_HISTORY" && WG_HISTORY="$WG_DIR/history" +test -z "$WG_LAST" && WG_LAST="$WG_DIR/last" +test -z "$WG_LASTURL" && WG_LASTURL="$WG_DIR/lasturl" + +mkdir -p "$WG_DIR" + +URL='' +NUMBER='' +FILE="$WG_LAST" +MODE=normal + +while test -n "$1"; do + case "$1" in + -b|--bookmark) FILE="$WG_BOOKMARK" ;; + -h|--history) FILE="$WG_HISTORY" ;; + --add-bookmark) MODE=bookmark ;; + -e|--edit) MODE=edit ;; + -r|--raw) MODE=raw ;; + --links) MODE=links ;; + -*) echo "wg: unknown option: $1" 1>&2 ;; + 1*|2*|3*|4*|5*|6*|7*|8*|9*) NUMBER="$1" ;; + *) URL="$1" ;; + esac + shift +done + +if test -n "$NUMBER"; then + URL=`urlbynum "$NUMBER" "$FILE"` +fi + +if test -n "$URL"; then + echo "$URL" > "$WG_LASTURL" + $WGET -O "$WG_LAST" "$URL" + make_track_line "$WG_LAST" "$WG_LASTURL" >> "$WG_HISTORY" +fi + +case "$MODE" in + bookmark) make_track_line "$WG_LAST" "$WG_LASTURL" >> "$WG_BOOKMARK" ;; + edit) exec $EDITOR "$FILE" ;; + raw) cat "$FILE" ;; + links) $HTMLFORMATTER "$FILE" | $FORMATTEDURLSCAN ;; + *) $HTMLFORMATTER "$FILE" | $FORMATTEDTIDY ;; +esac }