author | wenzelm |
Tue, 17 Jul 2012 15:56:19 +0200 | |
changeset 49291 | 4bd480886813 |
child 49295 | 7d86239986c2 |
permissions | -rw-r--r-- |
wenzelm@49291 | 1 |
/* Title: Pure/System/build.scala |
wenzelm@49291 | 2 |
Author: Makarius |
wenzelm@49291 | 3 |
|
wenzelm@49291 | 4 |
Build and manage Isabelle sessions. |
wenzelm@49291 | 5 |
*/ |
wenzelm@49291 | 6 |
|
wenzelm@49291 | 7 |
package isabelle |
wenzelm@49291 | 8 |
|
wenzelm@49291 | 9 |
|
wenzelm@49291 | 10 |
object Build |
wenzelm@49291 | 11 |
{ |
wenzelm@49291 | 12 |
/* command line entry point */ |
wenzelm@49291 | 13 |
|
wenzelm@49291 | 14 |
private object Bool |
wenzelm@49291 | 15 |
{ |
wenzelm@49291 | 16 |
def unapply(s: String): Option[Boolean] = |
wenzelm@49291 | 17 |
s match { |
wenzelm@49291 | 18 |
case "true" => Some(true) |
wenzelm@49291 | 19 |
case "false" => Some(false) |
wenzelm@49291 | 20 |
case _ => None |
wenzelm@49291 | 21 |
} |
wenzelm@49291 | 22 |
} |
wenzelm@49291 | 23 |
|
wenzelm@49291 | 24 |
def main(args: Array[String]) |
wenzelm@49291 | 25 |
{ |
wenzelm@49291 | 26 |
def bad_args() |
wenzelm@49291 | 27 |
{ |
wenzelm@49291 | 28 |
java.lang.System.err.println("Bad arguments: " + args.toString) |
wenzelm@49291 | 29 |
sys.exit(2) |
wenzelm@49291 | 30 |
} |
wenzelm@49291 | 31 |
|
wenzelm@49291 | 32 |
args.toList match { |
wenzelm@49291 | 33 |
case Bool(all_sessions) :: Bool(build_images) :: Bool(list_only) :: rest => |
wenzelm@49291 | 34 |
rest.indexWhere(_ == "\n") match { |
wenzelm@49291 | 35 |
case -1 => bad_args() |
wenzelm@49291 | 36 |
case i => |
wenzelm@49291 | 37 |
val (options, rest1) = rest.splitAt(i) |
wenzelm@49291 | 38 |
val sessions = rest1.tail |
wenzelm@49291 | 39 |
val rc = build(all_sessions, build_images, list_only, options, sessions) |
wenzelm@49291 | 40 |
sys.exit(rc) |
wenzelm@49291 | 41 |
} |
wenzelm@49291 | 42 |
case _ => bad_args() |
wenzelm@49291 | 43 |
} |
wenzelm@49291 | 44 |
} |
wenzelm@49291 | 45 |
|
wenzelm@49291 | 46 |
|
wenzelm@49291 | 47 |
/* build */ |
wenzelm@49291 | 48 |
|
wenzelm@49291 | 49 |
def build(all_sessions: Boolean, build_images: Boolean, list_only: Boolean, |
wenzelm@49291 | 50 |
options: List[String], sessions: List[String]): Int = |
wenzelm@49291 | 51 |
{ |
wenzelm@49291 | 52 |
val rc = 1 |
wenzelm@49291 | 53 |
|
wenzelm@49291 | 54 |
println("options = " + options.toString) |
wenzelm@49291 | 55 |
println("sessions = " + sessions.toString) |
wenzelm@49291 | 56 |
|
wenzelm@49291 | 57 |
rc |
wenzelm@49291 | 58 |
} |
wenzelm@49291 | 59 |
} |
wenzelm@49291 | 60 |