about summary refs log tree commit diff stats
path: root/src/main.fnl
blob: 79fed852ebad052c05f0ec0b819a6c94477fc18f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;;; RADISH
;; A tuner for various streams
;; Copyright (C) 2022 Case Duckworth <acdw@acdw.net>
;; License: Good Choices (https://acdw.casa/gcl)

(local util (require :util))
(local pls (require :pls))
(local radish (require :lib))

(fn usage [?exit-code]
  (print "RADISH: a tuner for various streams
Copyright (C) 2022 Case Duckworth <acdw@acdw.net>
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.")
  (os.exit (or ?exit-code 0)))

(fn main [...]
  "Program entry point.
See `usage' for usage details."
  (match [...]
    [:help] (usage)
    [: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)))

(main ...)