aboutsummaryrefslogtreecommitdiffstats
path: root/alv/copilot/cli.moon
blob: 36864911af2ac84be624dbd9e6f9e29445762436 (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
----
-- 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
  set_time: (time) =>
    super time
    @stream\write switch time
      when 'eval' then '\27[92m'
      when 'run' then '\27[0m'

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

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

    while true
      @tick!
      sleep 1 / 1000

{
  :CLICopilot
}