aboutsummaryrefslogtreecommitdiffstats
path: root/alv/copilot/cli.moon
blob: 67e845083b56cf17cb7de5d65c1706273bb87951 (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
----
-- CLI Copilot entrypoint.
--
-- @classmod CLICopilot
import Logger, version from require 'alv'
import parse_args, Copilot from require 'alv.copilot.base'
import sleep from require 'system'

class ColorLogger extends Logger
  new: (...) =>
    super ...
    @time_pref = ''

  set_time: (time) =>
    super time
    @time_pref = switch time
      when 'eval' then '\27[92m'
      when 'run' then '\27[0m'

  put: (msg) =>
    super @time_pref .. msg

class CLICopilot extends Copilot
  new: (arg) =>
    super parse_args arg, { nocolor: false, 'udp-server': false }
    assert @args[1], "no filename given"

  setup: =>
    if @args.nocolor
      Logger\init @args.log
    else
      ColorLogger\init @args.log

  run: =>
    @setup!

    while true
      @tick!
      sleep 1 / 1000

{
  :CLICopilot
}