#!/usr/bin/tclsh

proc clean_fieldname arg {
    return [regsub -all {[^A-Za-z]} $arg "_"]
}

proc main {argc argv} {
    set queues [exec /usr/sbin/rabbitmqctl list_queues -q]
    if {$argc > 0} {
	switch [lindex $argv 0] {
	    "config" {
		puts "graph_title Number of messages in RabbitMQ queues"
		puts "graph_vlabel messages"
		puts "graph_category RabbitMQ"
		foreach {q m} $queues {
		    set clean [clean_fieldname $q]
		    puts "$clean.label $q"
		    puts "$clean.draw LINE3"
                    puts "$clean.warning 300000"
                    puts "$clean.critical 700000"
		}
	    }
	    "autoconf" {
		puts "yes"
	    }
	}
    } else {
	foreach {q m} $queues {
	    set clean [clean_fieldname $q]
	    puts "$clean.value $m"
	}
    }
}

main $argc $argv

