--- /dev/null
+#!/usr/bin/perl -w
+
+
+use IO::File;
+use strict;
+
+maybe_mkdir("sections");
+my $section = 0;
+my $dir;
+my $query;
+
+while (<>) {
+ chomp();
+ s/[ \t]+$//;
+ next if /^$/;
+
+ if (s/^#[ \t]*//) {
+ $section++;
+ $query = 0;
+ $dir = "sections/" . substr("0$section", -2);
+ maybe_mkdir($dir);
+ write_file("$dir/name", $_);
+ print "created section $section ($dir) - $_\n";
+ next;
+ }
+
+ die "query before first section header"
+ if !defined $dir;
+
+ $query++;
+ my $filename = $dir . "/" . substr("0$query", -2) . ".cql";
+ write_file($filename, $_);
+ $filename =~ s@sections/(.*)\.cql@$1@;
+ print " added $filename - $_\n";
+}
+
+sub write_file {
+ my($name, $contents) = @_;
+
+ my $fh = new IO::File(">$name")
+ or die "can't create '$name': $!";
+ $fh->print($contents);
+ $fh->close();
+}
+
+sub maybe_mkdir {
+ my($dir) = shift();
+ if (mkdir $dir) {
+ return;
+ }
+ if ($! =~ /exists/i) {
+ return;
+ }
+ die "can't create directory '$dir': $!";
+}