aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/makeplugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/LV2/makeplugin')
-rwxr-xr-xplugins/LV2/makeplugin44
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