src/Pure/Tools/update_header.scala
changeset 58872 f0f623005324
child 59083 88b0b1f28adc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Pure/Tools/update_header.scala	Sun Nov 02 16:47:45 2014 +0100
@@ -0,0 +1,40 @@
+/*  Title:      Pure/Tools/update_header.scala
+    Author:     Makarius
+
+Replace theory header command.
+*/
+
+package isabelle
+
+
+object Update_Header
+{
+  def update_header(section: String, path: Path)
+  {
+    val text0 = File.read(path)
+    val text1 =
+      (for (tok <- Outer_Syntax.empty.scan(text0).iterator)
+        yield { if (tok.source == "header") section else tok.source }).mkString
+
+    if (text0 != text1) {
+      Output.writeln("changing " + path)
+      File.write_backup2(path, text1)
+    }
+  }
+
+
+  /* command line entry point */
+
+  def main(args: Array[String])
+  {
+    Command_Line.tool0 {
+      args.toList match {
+        case section :: files =>
+          if (!Set("chapter", "section", "subsection", "subsubsection").contains(section))
+            error("Bad heading command: " + quote(section))
+          files.foreach(file => update_header(section, Path.explode(file)))
+        case _ => error("Bad arguments:\n" + cat_lines(args))
+      }
+    }
+  }
+}