]> git.sesse.net Git - mlt/commitdiff
Add ruby script to generate wiki text files.
authorDan Dennedy <dan@dennedy.org>
Sun, 29 May 2011 18:28:41 +0000 (11:28 -0700)
committerDan Dennedy <dan@dennedy.org>
Sun, 29 May 2011 18:28:41 +0000 (11:28 -0700)
src/swig/ruby/metadata.rb [new file with mode: 0755]

diff --git a/src/swig/ruby/metadata.rb b/src/swig/ruby/metadata.rb
new file mode 100755 (executable)
index 0000000..80f3977
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/env ruby
+require 'mlt'
+
+$repo = Mlt::Factory::init
+
+def output(mlt_type, services, type_title)
+  index = File.open("Plugins#{type_title}s.txt", 'w')
+  index.puts '%META:TOPICPARENT{name="Documentation"}%'
+  index.puts "---+ #{type_title} Plugins"
+  (0..(services.count - 1)).each {|i|
+    name = services.get_name(i)
+    meta = $repo.metadata(mlt_type, name)
+    if meta.is_valid
+      filename = type_title + name.capitalize.gsub('.', '-')
+      File.open(filename + '.txt', 'w') do |f|
+        f.puts %Q/%META:TOPICPARENT{name="Plugins#{type_title}s"}%/
+        f.puts "---+ #{type_title} Plugin"
+        f.puts "---++ #{name}"
+        f.puts '<verbatim>'
+        f.puts meta.serialise_yaml
+        f.puts '</verbatim>'
+        puts "Wrote file #{filename}.txt"
+        index.puts "   * [[#{filename}][#{name}]]: #{meta.get('title')}\n"
+      end
+    end
+  }
+  index.close
+end
+
+[
+  [Mlt::Consumer_type, $repo.consumers, 'Consumer'],
+  [Mlt::Filter_type, $repo.filters, 'Filter'],
+  [Mlt::Producer_type, $repo.producers, 'Producer'],
+  [Mlt::Transition_type, $repo.transitions, 'Transition']
+].each {|x| output *x}