Method: OpenC3::CliGenerator.generate_conversion

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

.generate_conversion(args) ⇒ Object



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/openc3/utilities/cli_generator.rb', line 302

def self.generate_conversion(args)
  if args.length < 3 or args.length > 4
    abort("Usage: cli generate conversion <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! Conversions must be created for existing targets.")
  end
  conversion_name = "#{args[2].upcase.gsub(/_+|-+/, '_')}_CONVERSION"
  conversion_path = "targets/#{target_name}/lib/"
  conversion_basename = "#{conversion_name.downcase}.#{@@language}"
  conversion_class = conversion_basename.filename_to_class_name
  conversion_filename = "targets/#{target_name}/lib/#{conversion_basename}"
  if File.exist?(conversion_filename)
    abort("Conversion #{conversion_filename} already exists!")
  end

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

  puts "Conversion #{conversion_filename} successfully generated!"
  puts "To use the conversion add the following to a telemetry item:"
  puts "  READ_CONVERSION #{conversion_basename}"
  return conversion_name
end