#!/usr/bin/env ruby unless ARGV[0] puts "Give me the name of a plugin to make." exit end root = File.dirname(__FILE__) plugin_name = ARGV[0] plugin_slug = plugin_name.downcase target_dir = File.join(root, 'src', plugin_name) template_dir = File.join(root, 'Template') puts "Creating plugin #{plugin_name}..." Templates = %w{ manifest.ttl.in Plugin.ttl Plugin.h Plugin.cpp } begin Dir.mkdir(target_dir) Templates.each do |t| tpl = IO.read(File.join(template_dir, t)) .gsub('@Plugin@', plugin_name) .gsub('@plugin@', plugin_slug) fname = t.sub('Plugin', plugin_name) puts " - #{fname}..." File.open(File.join(target_dir, fname), "w") do |f| f.write(tpl) end end rescue SystemCallError => e puts "Could not create plugin: #{e}" puts "Aborting!" end