X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=lib%2Fmcollective%2Fgenerators%2Fbase.rb;fp=lib%2Fmcollective%2Fgenerators%2Fbase.rb;h=57ff3a04d758e7de6d61aaded2f032b256ebdc8a;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/lib/mcollective/generators/base.rb b/lib/mcollective/generators/base.rb new file mode 100644 index 0000000..57ff3a0 --- /dev/null +++ b/lib/mcollective/generators/base.rb @@ -0,0 +1,46 @@ +module MCollective + module Generators + class Base + attr_accessor :meta, :plugin_name, :mod_name + def initialize(name, description, author, license, version, url, timeout) + @meta = {:name => name, + :description => description, + :author => author, + :license => license, + :version => version, + :url => url, + :timeout => timeout} + end + + def create_metadata_string + ddl_template = File.read(File.join(File.dirname(__FILE__), "templates", "ddl.erb")) + ERB.new(ddl_template, nil, "-").result(binding) + end + + def create_plugin_string + plugin_template = File.read(File.join(File.dirname(__FILE__), "templates", "plugin.erb")) + ERB.new(plugin_template, nil, "-").result(binding) + end + + def write_plugins + begin + Dir.mkdir @plugin_name + dirname = File.join(@plugin_name, @mod_name.downcase) + Dir.mkdir dirname + puts "Created plugin directory : #{@plugin_name}" + + File.open(File.join(dirname, "#{@plugin_name}.ddl"), "w"){|f| f.puts @ddl} + puts "Created DDL file : #{File.join(dirname, "#{@plugin_name}.ddl")}" + + File.open(File.join(dirname, "#{@plugin_name}.rb"), "w"){|f| f.puts @plugin} + puts "Created #{@mod_name} file : #{File.join(dirname, "#{@plugin_name}.rb")}" + rescue Errno::EEXIST + raise "cannot generate '#{@plugin_name}' : plugin directory already exists." + rescue Exception => e + FileUtils.rm_rf(@plugin_name) if File.directory?(@plugin_name) + raise "cannot generate plugin - #{e}" + end + end + end + end +end