diff options
Diffstat (limited to 'plugins/LV2/makeplugin')
-rwxr-xr-x | plugins/LV2/makeplugin | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/LV2/makeplugin b/plugins/LV2/makeplugin new file mode 100755 index 0000000..8fc98eb --- /dev/null +++ b/plugins/LV2/makeplugin @@ -0,0 +1,44 @@ +#!/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 |