--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/scripts/tools.pl Wed Mar 23 20:51:36 2011 +0100
@@ -0,0 +1,37 @@
+#
+# Author: Makarius
+#
+# tools.pl - list Isabelle tools with description
+#
+
+use strict;
+use warnings;
+
+my @tools = ();
+
+for my $dir (split(":", $ENV{"ISABELLE_TOOLS"})) {
+ if (-d $dir) {
+ if (opendir DIR, $dir) {
+ for my $name (readdir DIR) {
+ my $file = "$dir/$name";
+ if (-f $file and -x $file and !($file =~ /~$/)) {
+ if (open FILE, $file) {
+ my $description;
+ while (<FILE>) {
+ if (!defined($description) and m/DESCRIPTION: *(.*)$/) {
+ $description = $1;
+ }
+ }
+ close FILE;
+ if (defined($description)) {
+ push(@tools, " $name - $description\n");
+ }
+ }
+ }
+ }
+ closedir DIR;
+ }
+ }
+}
+
+for (sort @tools) { print };