class Syskit::CLI::GenMain
Public Instance Methods
app(dir = nil)
click to toggle source
Calls superclass method
# File lib/syskit/cli/gen_main.rb, line 10 def app(dir = nil) dir = super(dir, init_path: 'syskit_app') directory 'syskit_app/', File.join(dir), verbose: !options[:quiet] dir end
bus(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 33 def bus(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'bus', name, options[:robot], ['models', 'devices'], ["Devices"]) template File.join('bus', 'class.rb'), File.join('models', 'devices', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('bus_name' => class_name) template File.join('bus', "test.rb"), File.join('test', 'devices', *file_name[0..-2], "test_#{file_name[-1]}.rb"), context: Roby::CLI::Gen.make_context( 'bus_name' => class_name, 'require_path' => File.join('models', "devices", *file_name)) end
cmp(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 100 def cmp(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'composition', name, options[:robot], ['models', 'compositions'], ["Compositions"]) template File.join('cmp', 'class.rb'), File.join('models', 'compositions', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('class_name' => class_name) template File.join('cmp', "test.rb"), File.join('test', 'compositions', *file_name[0..-2], "test_#{file_name[-1]}.rb"), context: Roby::CLI::Gen.make_context( 'class_name' => class_name, 'require_path' => File.join('models', "compositions", *file_name)) end
dev(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 66 def dev(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'device', name, options[:robot], ['models', 'devices'], ["Devices"]) template File.join('dev', 'class.rb'), File.join('models', 'devices', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('dev_name' => class_name) template File.join('dev', "test.rb"), File.join('test', 'devices', *file_name[0..-2], "test_#{file_name[-1]}.rb"), context: Roby::CLI::Gen.make_context( 'dev_name' => class_name, 'require_path' => File.join('models', "devices", *file_name)) end
orogen(project_name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 226 def orogen(project_name) Roby.app.require_app_dir(needs_current: true) Roby.app.single = true Roby.app.base_setup Syskit.conf.only_load_models = true Roby.app.setup project = Roby.app.using_task_library(project_name) orogen_models = project.self_tasks.values template File.join('orogen/class.rb'), File.join(Roby.app.app_dir, 'models', 'orogen', "#{project_name}.rb"), context: Roby::CLI::Gen.make_context( 'orogen_project_name' => project_name, 'orogen_models' => orogen_models) template File.join('orogen/test.rb'), File.join(Roby.app.app_dir, 'test', 'orogen', "test_#{project_name}.rb"), context: Roby::CLI::Gen.make_context( 'orogen_project_name' => project_name, 'orogen_models' => orogen_models) ensure Roby.app.cleanup Roby.app.base_cleanup end
orogenconf(model_name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 281 def orogenconf(model_name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config orogen_model_name = model_name Roby.app.using_task_library(model_name.split('::').first) task_model = Syskit::TaskContext.find_model_from_orogen_name(model_name) if !task_model raise Roby::CLI::CLIInvalidArguments, "cannot find a task model called #{model_name}" end file_name = File.join('config', 'orogen', *options[:robot], "#{task_model.orogen_model.name}.yml") section_name = "default" section = nil begin Orocos.run task_model.orogen_model => "oroconf_extract", oro_logfile: '/dev/null' do task = Orocos.get "oroconf_extract" task_model.configuration_manager.extract(section_name, task) section = task_model.configuration_manager.conf(section_name) section = Orocos::TaskConfigurations.to_yaml(section) end rescue Exception => e if !section raise Roby::CLI::CLICommandFailed, "failed to start a component of model #{task_model.orogen_model.name}, cannot create a configuration file with default values" end end if section content = orogenconf_generate_section(section, task_model.orogen_model) template File.join('orogenconf', 'conf.yml'), file_name, context: Roby::CLI::Gen.make_context('section_name' => section_name, 'content' => content) end end
orogenconf_generate_section(section, orogen_task_model)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 251 def orogenconf_generate_section(section, orogen_task_model) section.keys.sort.flat_map do |property_name| if (p = orogen_task_model.find_property(property_name)) && (doc = p.doc) doc = doc.split("\n").map { |s| "# #{s}" }.join("\n") else doc = "# no documentation available for this property" end property_hash = { property_name => section[property_name] } yaml = YAML.dump(property_hash) [doc, yaml.split("\n")[1..-1].join("\n")] end.join("\n") end
profile(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 196 def profile(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'profile', name, options[:robot], ['models', 'profiles'], ["Profiles"]) template File.join('profile', 'class.rb'), File.join('models', 'profiles', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('class_name' => class_name) template File.join('profile', "test.rb"), File.join('test', 'profiles', *file_name[0..-2], "test_#{file_name[-1]}.rb"), context: Roby::CLI::Gen.make_context( 'class_name' => class_name, 'require_path' => File.join('models', "profiles", *file_name)) end
ruby_task(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 134 def ruby_task(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'ruby task', name, options[:robot], ['models', 'compositions'], ["Compositions"]) template File.join('ruby_task', 'class.rb'), File.join('models', 'compositions', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('class_name' => class_name) template File.join('ruby_task', "test.rb"), File.join('test', 'compositions', *file_name[0..-2], "test_#{file_name[-1]}.rb"), context: Roby::CLI::Gen.make_context( 'class_name' => class_name, 'require_path' => File.join('models', "compositions", *file_name)) end
srv(name)
click to toggle source
# File lib/syskit/cli/gen_main.rb, line 167 def srv(name) Roby.app.require_app_dir(needs_current: true) Roby.app.load_base_config file_name, class_name = Roby::CLI::Gen.resolve_name( 'service', name, options[:robot], ['models', 'services'], ["Services"]) template File.join('srv', 'class.rb'), File.join('models', 'services', *file_name) + ".rb", context: Roby::CLI::Gen.make_context('class_name' => class_name) end