#!/usr/bin/env bash if [[ ! -d "$HOME/.andpile" ]]; then mkdir "$HOME/.andpile" ; mkdir "$HOME/.andpile/data" ; touch "$HOME/.andpile/feeds.txt" ; fi remove_feed() { sed -i.back "$(($1 + 1))d" "$HOME/.andpile/feeds.txt" ; } add_feed () { if grep -q "^$1" "$HOME/.andpile/feeds.txt" ; then echo "Already subscribed to feed" ; else id="$(uuidgen)" ; echo "Subscribing to feed..." ; echo "$1 $id" >> "$HOME/.andpile/feeds.txt" ; echo "Downloading listing..." curl "$1" >> "$HOME/.andpile/data/$id.txt" ; fi } feeds () { readarray -t lines < "$HOME/.andpile/feeds.txt" ; echo ""; for index in "${!lines[@]}" ; do line=${lines[$index]} read feed_url id <<< $line ; readarray -t contents < "$HOME/.andpile/data/$id.txt" ; echo "$index: ${contents[0]} (${contents[1]})" ; i=2 ; while [ -n "${contents[$i]}" ]; do echo " ${contents[$i]}" ((i++)) done echo ""; done } list_feed () { readarray -t lines < "$HOME/.andpile/feeds.txt" ; read url id <<< ${lines[$1]} ; if [[ -f "$HOME/.andpile/data/$id.txt" ]]; then curl "$url" > "$HOME/.andpile/data/$id.txt" ; cat "$HOME/.andpile/data/$id.txt" | more ; fi } case "$1" in add-feed) add_feed "$2" ;; remove-feed) remove_feed "$2" ;; feeds) feeds ;; list) list_feed "$2" ;; esac