;;; RADISH ;; A tuner for various streams ;; Copyright (C) 2022 Case Duckworth ;; License: Good Choices (https://acdw.casa/gcl) ;;; Entry point (fn usage [] (printn* "RADISH: a tuner for various streams" "Copyright (C) 2022 Case Duckworth " "License: Good Choices (https://acdw.casa/gcl)" "" "Commands" " radish [STATION]" " Begin playing STATION. If STATION is not" " provided, display a list of favorites and" " allow the user to choose one to play." " radish play [STATION]" " Begin playing STATION. If STATION is not" " provided, play the most recently-played." " radish kill" " Kill the currently-playing station." " radish add [STATION]" " Add STATION or the currently-playing one" " to the favorites list." " radish del [STATION]" " Remove STATION or the currently-playing" " one from the favorites list." " radish edit [STATION]" " Edit the information of STATION, or the" " current one if not given." "" "See radish(1) for more details.")) (fn main [args] (match args [:play ?station] (radish-play ?station) [:kill] (radish-kill) [:add ?station] (radish-add ?station) [:del ?station] (radish-del ?station) [:edit ?station] (radish-edit ?station) [station] (radish-play station) _ (usage))) ;;; Utilities (lambda printn* [?sep ...] "Print arguments as strings, delimited by ?SEP. ?SEP defaults to '\n', but can be anything." (print (table.concat [...] (or ?sep "\n")))) ;;; Functionality (lambda radish-play [?station]) (lambda radish-kill []) (lambda radish-add [?station]) (lambda radish-del [?station]) (lambda radish-edit [?station]) ;;; End (main args)