Остання активність 7 hours ago

andpile Неформатований Playground
1#!/usr/bin/env bash
2
3if [[ ! -d "$HOME/.andpile" ]]; then
4 mkdir "$HOME/.andpile" ;
5 mkdir "$HOME/.andpile/data" ;
6 touch "$HOME/.andpile/feeds.txt" ;
7fi
8
9remove_feed() {
10 sed -i.back "$(($1 + 1))d" "$HOME/.andpile/feeds.txt" ;
11}
12
13add_feed () {
14 if grep -q "^$1" "$HOME/.andpile/feeds.txt" ; then
15 echo "Already subscribed to feed" ;
16 else
17 id="$(uuidgen)" ;
18 echo "Subscribing to feed..." ;
19 echo "$1 $id" >> "$HOME/.andpile/feeds.txt" ;
20 echo "Downloading listing..."
21 curl "$1" >> "$HOME/.andpile/data/$id.txt" ;
22 fi
23}
24
25
26feeds () {
27 readarray -t lines < "$HOME/.andpile/feeds.txt" ;
28 echo "";
29 for index in "${!lines[@]}" ; do
30 line=${lines[$index]}
31 read feed_url id <<< $line ;
32 readarray -t contents < "$HOME/.andpile/data/$id.txt" ;
33 echo "$index: ${contents[0]} (${contents[1]})" ;
34 i=2 ;
35 while [ -n "${contents[$i]}" ]; do
36 echo " ${contents[$i]}"
37 ((i++))
38 done
39 echo "";
40 done
41}
42
43list_feed () {
44 readarray -t lines < "$HOME/.andpile/feeds.txt" ;
45 read url id <<< ${lines[$1]} ;
46 if [[ -f "$HOME/.andpile/data/$id.txt" ]]; then
47 curl "$url" > "$HOME/.andpile/data/$id.txt" ;
48 cat "$HOME/.andpile/data/$id.txt" | more ;
49 fi
50}
51
52case "$1" in
53 add-feed) add_feed "$2" ;;
54 remove-feed) remove_feed "$2" ;;
55 feeds) feeds ;;
56 list) list_feed "$2" ;;
57esac
58