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



48
49
50
51
52
53
# File 'lib/prremote/cli.rb', line 48

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

#eval(expr) ⇒ Object



64
65
66
67
68
69
# File 'lib/prremote/cli.rb', line 64

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

#installObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/prremote/cli.rb', line 26

def install
  version = options[:version] || RUNTIME_VERSION
  board = options[:board] || 'picow'
  unless RuntimeManager::BOARDS.include?(board)
    raise Thor::Error, "Unknown board '#{board}'. Valid values: #{RuntimeManager::BOARDS.join(', ')}"
  end

  Commands::Install.new(version: version, board: board).call
rescue StandardError => e
  raise Thor::Error, e.message
end

#listObject



80
81
82
83
84
85
86
87
# File 'lib/prremote/cli.rb', line 80

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



90
91
92
93
94
95
96
97
98
99
100
# File 'lib/prremote/cli.rb', line 90

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

#run_script(file) ⇒ Object



39
40
41
42
43
44
# File 'lib/prremote/cli.rb', line 39

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

#undeployObject



56
57
58
59
60
61
# File 'lib/prremote/cli.rb', line 56

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

#versionObject



103
104
105
106
107
108
109
110
111
112
113
# File 'lib/prremote/cli.rb', line 103

def version
  puts "prremote: #{VERSION}"

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

  puts "runtime:  #{fetch_runtime_version}"
end

#watch(file) ⇒ Object



72
73
74
75
76
77
# File 'lib/prremote/cli.rb', line 72

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