diff options
Diffstat (limited to 'radish')
-rwxr-xr-x | radish | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/radish b/radish index 3cc4eb7..a5d5d07 100755 --- a/radish +++ b/radish | |||
@@ -6,7 +6,7 @@ | |||
6 | usage() { | 6 | usage() { |
7 | cat <<EOF | 7 | cat <<EOF |
8 | RADISH: radio, music, static | 8 | RADISH: radio, music, static |
9 | USAGE: radish [-h|-k|-r|-s|-S] | 9 | USAGE: radish [-h|-k|-r|-s|-S|-i] |
10 | radish -l [NAME] | 10 | radish -l [NAME] |
11 | radish [STATION] | 11 | radish [STATION] |
12 | 12 | ||
@@ -16,6 +16,7 @@ FLAGS: | |||
16 | -S Show radish's status indefinitely. | 16 | -S Show radish's status indefinitely. |
17 | -k Kill the currently-playing radish invocation. | 17 | -k Kill the currently-playing radish invocation. |
18 | -r Replay most recently-played station. | 18 | -r Replay most recently-played station. |
19 | -i Show information about currently-playing station. | ||
19 | 20 | ||
20 | OPTIONS: | 21 | OPTIONS: |
21 | -l [NAME] List available stations. | 22 | -l [NAME] List available stations. |
@@ -40,7 +41,7 @@ config() { | |||
40 | 41 | ||
41 | main() { | 42 | main() { |
42 | config | 43 | config |
43 | while getopts :hkrsSl: opt; do | 44 | while getopts :hkrsSl:L:i opt; do |
44 | case "$opt" in | 45 | case "$opt" in |
45 | h) usage ;; | 46 | h) usage ;; |
46 | k) radish_kill ;; | 47 | k) radish_kill ;; |
@@ -48,9 +49,12 @@ main() { | |||
48 | s) radish_status ;; | 49 | s) radish_status ;; |
49 | S) radish_status -follow ;; | 50 | S) radish_status -follow ;; |
50 | l) radish_list "$OPTARG" ;; | 51 | l) radish_list "$OPTARG" ;; |
52 | L) radish_list -r "$OPTARG" ;; | ||
53 | i) radish_info ;; | ||
51 | :) | 54 | :) |
52 | case "$OPTARG" in | 55 | case "$OPTARG" in |
53 | l) radish_list ;; | 56 | l) radish_list ;; |
57 | L) radish_list -r ;; | ||
54 | *) | 58 | *) |
55 | echo >&2 "Option -$OPTARG requires an argument" | 59 | echo >&2 "Option -$OPTARG requires an argument" |
56 | usage 1 | 60 | usage 1 |
@@ -127,6 +131,12 @@ echo() { printf '%s\n' "$*"; } | |||
127 | 131 | ||
128 | ### Main functionality | 132 | ### Main functionality |
129 | 133 | ||
134 | radish_info() { | ||
135 | url="$(cat "$RADISH_LP_FILE")" | ||
136 | grep "$url" "$RADISH_STATION_FILE" | ||
137 | exit | ||
138 | } | ||
139 | |||
130 | radish_kill() { | 140 | radish_kill() { |
131 | if [ -f "$RADISH_PID_FILE" ]; then | 141 | if [ -f "$RADISH_PID_FILE" ]; then |
132 | printf >&2 '%s' "Killing radish..." | 142 | printf >&2 '%s' "Killing radish..." |
@@ -151,14 +161,25 @@ radish_status() { | |||
151 | } | 161 | } |
152 | 162 | ||
153 | radish_list() { | 163 | radish_list() { |
154 | _radish_stations | grep -i "${1:-}" | awk -F '\t' '{ | 164 | if [ "x$1" = x-r ]; then |
155 | desc = $'$_schema_desc' | 165 | raw=true |
156 | url = $'$_schema_url' | 166 | shift |
157 | tags = $'$_schema_tags' | 167 | else |
168 | raw=false | ||
169 | fi | ||
170 | _radish_stations | grep -i "${1:-}" | | ||
171 | if "$raw"; then | ||
172 | awk 'BEGIN{FS="\t";OFS="\t"}{print $2, $1, $3}' | ||
173 | else | ||
174 | awk -F '\t' '{ | ||
175 | desc = $2 | ||
176 | url = $1 | ||
177 | tags = $3 | ||
158 | printf "%-23s |", substr(desc,1,20) (length(desc)>20?"...":"") | 178 | printf "%-23s |", substr(desc,1,20) (length(desc)>20?"...":"") |
159 | printf "%-23s |", substr(tags,1,20) (length(tags)>20?"...":"") | 179 | printf "%-23s |", substr(tags,1,20) (length(tags)>20?"...":"") |
160 | printf "%-23s\n", substr(url,1,20) (length(url)>20?"...":"") | 180 | printf "%-23s\n", substr(url,1,20) (length(url)>20?"...":"") |
161 | }' | 181 | }' |
182 | fi | ||
162 | exit | 183 | exit |
163 | } | 184 | } |
164 | 185 | ||