Method: OpenC3::CliGenerator.generate_limits_response

Defined in:
lib/openc3/utilities/cli_generator.rb

.generate_limits_response(args) ⇒ Object



332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
# File 'lib/openc3/utilities/cli_generator.rb', line 332

def self.generate_limits_response(args)
  if args.length < 3 or args.length > 4
    abort("Usage: cli generate limits_response <TARGET> <NAME> (--ruby or --python)")
  end

  # Create the local variables
  target_name = args[1].upcase
  unless File.exist?("targets/#{target_name}")
    abort("Target '#{target_name}' does not exist! Limits responses must be created for existing targets.")
  end
  response_name = "#{args[2].upcase.gsub(/_+|-+/, '_')}_LIMITS_RESPONSE"
  response_path = "targets/#{target_name}/lib/"
  response_basename = "#{response_name.downcase}.#{@@language}"
  response_class = response_basename.filename_to_class_name
  response_filename = "targets/#{target_name}/lib/#{response_basename}"
  if File.exist?(response_filename)
    abort("response #{response_filename} already exists!")
  end

  process_template("#{TEMPLATES_DIR}/limits_response", binding) do |filename|
    filename.sub!("response.#{@@language}", response_filename)
    false
  end

  puts "Limits response #{response_filename} successfully generated!"
  puts "To use the limits response add the following to a telemetry item:"
  puts "  LIMITS_RESPONSE #{response_basename}"
  return response_name
end