diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2020-07-21 22:43:18 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2020-07-21 22:43:18 +0200 |
commit | 87e60a7db4d81c8548a753e7c9c7c0d6eec2065b (patch) | |
tree | fb686977857d3680c1331168359fa797b81dc808 /plugins/LV2/makeplugin | |
parent | 74b313b3d08e4cf88e55d246fbea4fe39ab49709 (diff) | |
download | airwindows-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-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 |