about summary refs log tree commit diff stats
path: root/radish
diff options
context:
space:
mode:
Diffstat (limited to 'radish')
-rwxr-xr-xradish33
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 @@
6usage() { 6usage() {
7 cat <<EOF 7 cat <<EOF
8RADISH: radio, music, static 8RADISH: radio, music, static
9USAGE: radish [-h|-k|-r|-s|-S] 9USAGE: 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
20OPTIONS: 21OPTIONS:
21 -l [NAME] List available stations. 22 -l [NAME] List available stations.
@@ -40,7 +41,7 @@ config() {
40 41
41main() { 42main() {
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
134radish_info() {
135 url="$(cat "$RADISH_LP_FILE")"
136 grep "$url" "$RADISH_STATION_FILE"
137 exit
138}
139
130radish_kill() { 140radish_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
153radish_list() { 163radish_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