summaryrefslogtreecommitdiff
path: root/autosplit
diff options
context:
space:
mode:
Diffstat (limited to 'autosplit')
-rwxr-xr-xautosplit29
1 files changed, 29 insertions, 0 deletions
diff --git a/autosplit b/autosplit
new file mode 100755
index 0000000000..a57b6feaa1
--- /dev/null
+++ b/autosplit
@@ -0,0 +1,29 @@
+#!./miniperl
+
+chdir "lib" if -d "lib";
+
+$package = shift;
+
+$filename = "$package.pm";
+open(IN, $filename) || die "Can't open $filename: $!\n";
+while (<IN>) {
+ last if /^__END__/;
+}
+$_ or die "Can't find __END__ in $filename\n";
+
+mkdir "auto/$package", 0777 unless -d "auto/$package";
+while (<IN>) {
+ if (/^sub ([\w:]+)/) {
+ $name = $1;
+ print OUT "1;\n";
+ $newname = "auto/$package/$name.al";
+ open(OUT, ">$newname") or warn "Can't create $newname: $!\n";
+ print OUT <<"END";
+# NOTE: Derived from $package.pm. Changes made here will be lost.
+package $package;
+
+END
+ }
+ print OUT $_;
+}
+print OUT "1;\n";