Class: Prremote::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/prremote/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/prremote/cli.rb', line 19

def self.exit_on_failure?
  true
end

Instance Method Details

#deploy(file) ⇒ Object



42
43
44
45
46
47
# File 'lib/prremote/cli.rb', line 42

def deploy(file)
  port = resolve_port
  Commands::Deploy.new(port: port, baud: options[:baud]).call(file)
rescue RuntimeError => e
  raise Thor::Error, e.message
end

#eval(expr) ⇒ Object



58
59
60
61
62
63
# File 'lib/prremote/cli.rb', line 58

def eval(expr)
  port = resolve_port
  Commands::EvalCmd.new(port: port, baud: options[:baud]).call(expr)
rescue RuntimeError => e
  raise Thor::Error, e.message
end

#installObject



25
26
27
28
29
30
# File 'lib/prremote/cli.rb', line 25

def install
  version = options[:version] || RUNTIME_VERSION
  Commands::Install.new(version: version).call
rescue RuntimeError => e
  raise Thor::Error, e.message
end

#listObject



74
75
76
77
78
79
80
81
# File 'lib/prremote/cli.rb', line 74

def list
  devices = Detector.new.list_devices
  if devices.empty?
    puts 'No serial devices found.'
  else
    devices.each { |d| puts "#{d[:port]}  (#{d[:label]})" }
  end
end

#resetObject



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/prremote/cli.rb', line 84

def reset
  port = resolve_port
  serial = Serial.new(port, options[:baud])
  serial.write("\x03")
  sleep 0.1
  puts 'Reset signal sent.'
rescue RuntimeError => e
  raise Thor::Error, e.message
ensure
  serial&.close
end

#run_script(file) ⇒ Object



33
34
35
36
37
38
# File 'lib/prremote/cli.rb', line 33

def run_script(file)
  port = resolve_port
  Commands::Run.new(port: port, baud: options[:baud]).call(file)
rescue RuntimeError => e
  raise Thor::Error, e.message
end

#undeployObject



50
51
52
53
54
55
# File 'lib/prremote/cli.rb', line 50

def undeploy
  port = resolve_port
  Commands::Undeploy.new(port: port, baud: options[:baud]).call
rescue RuntimeError => e
  raise Thor::Error, e.message
end

#versionObject



97
98
99
100
101
102
103
104
105
106
107
# File 'lib/prremote/cli.rb', line 97

def version
  puts "prremote: #{VERSION}"

  begin
    puts "mrbc:     #{Mrbc.version} (#{Mrbc.bin})"
  rescue RuntimeError => e
    puts "mrbc:     (#{e.message})"
  end

  puts "runtime:  #{fetch_runtime_version}"
end

#watch(file) ⇒ Object



66
67
68
69
70
71
# File 'lib/prremote/cli.rb', line 66

def watch(file)
  port = resolve_port
  Commands::Watch.new(port: port, baud: options[:baud]).call(file)
rescue RuntimeError => e
  raise Thor::Error, e.message
end