summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/marionette0
-rwxr-xr-xbin/marionette-dotgraph40
2 files changed, 40 insertions, 0 deletions
diff --git a/bin/marionette b/bin/marionette
deleted file mode 100644
index e69de29bb2..0000000000
--- a/bin/marionette
+++ /dev/null
diff --git a/bin/marionette-dotgraph b/bin/marionette-dotgraph
new file mode 100755
index 0000000000..80e2f342d7
--- /dev/null
+++ b/bin/marionette-dotgraph
@@ -0,0 +1,40 @@
+#!/usr/bin/ruby
+#
+# Author:: Adam Jacob (<adam@hjksolutions.com>)
+# Copyright:: Copyright (c) 2008 HJK Solutions, LLC
+# License:: GNU General Public License version 2 or later
+#
+# This program and entire repository is free software; you can
+# redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+require File.join(File.dirname(__FILE__), "..", "lib", "marionette")
+require 'rgl/dot'
+
+mr = Marionette::Recipe.new("test", "default", "node")
+raise ArgumentError, "#{ARGV[0]} is not a file!" unless File.exists?(ARGV[0])
+mr.instance_eval(IO.read(ARGV[0]), ARGV[0], 1)
+puts mr.inspect
+puts mr.dg.directed?
+puts mr.dg.acyclic?
+tree = Array.new
+mr.dg.depth_first_visit(:top) do |v|
+ tree << v
+end
+maybe = mr.dg.bfs_search_tree_from(:top)
+puts maybe.acyclic?
+puts maybe.directed?
+puts maybe.topsort_iterator.to_a.join("\n")
+maybe.write_to_graphic_file
+