aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/makeplugin
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2020-07-21 22:43:18 +0200
committerHarald Eilertsen <haraldei@anduin.net>2020-07-21 22:43:18 +0200
commit87e60a7db4d81c8548a753e7c9c7c0d6eec2065b (patch)
treefb686977857d3680c1331168359fa797b81dc808 /plugins/LV2/makeplugin
parent74b313b3d08e4cf88e55d246fbea4fe39ab49709 (diff)
downloadairwindows-lv2-port-87e60a7db4d81c8548a753e7c9c7c0d6eec2065b.tar.gz
airwindows-lv2-port-87e60a7db4d81c8548a753e7c9c7c0d6eec2065b.tar.bz2
airwindows-lv2-port-87e60a7db4d81c8548a753e7c9c7c0d6eec2065b.zip
LV2: Add template plugin and script.
To ease booting up a new plugin. The script just reads the template files, replaces the placeholders with the new plugin name, and writes them out as the proper plugin files in the right directory. Primitive, but does the job. The script should work with any version of ruby.
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