equal
deleted
inserted
replaced
593 |
593 |
594 private def is_session_dir(dir: Path): Boolean = |
594 private def is_session_dir(dir: Path): Boolean = |
595 (dir + ROOT).is_file || (dir + ROOTS).is_file |
595 (dir + ROOT).is_file || (dir + ROOTS).is_file |
596 |
596 |
597 private def check_session_dir(dir: Path): Path = |
597 private def check_session_dir(dir: Path): Path = |
598 if (is_session_dir(dir)) dir |
598 if (is_session_dir(dir)) File.pwd() + dir.expand |
599 else error("Bad session root directory: " + dir.toString) |
599 else error("Bad session root directory: " + dir.toString) |
600 |
600 |
601 def load(options: Options, dirs: List[Path] = Nil, select_dirs: List[Path] = Nil): T = |
601 def load(options: Options, dirs: List[Path] = Nil, select_dirs: List[Path] = Nil): T = |
602 { |
602 { |
603 def load_dir(select: Boolean, dir: Path): List[(String, Info)] = |
603 def load_dir(select: Boolean, dir: Path): List[(String, Info)] = |
624 } |
624 } |
625 else Nil |
625 else Nil |
626 } |
626 } |
627 |
627 |
628 val default_dirs = Isabelle_System.components().filter(is_session_dir(_)) |
628 val default_dirs = Isabelle_System.components().filter(is_session_dir(_)) |
629 dirs.foreach(check_session_dir(_)) |
|
630 select_dirs.foreach(check_session_dir(_)) |
|
631 |
629 |
632 make( |
630 make( |
633 for { |
631 for { |
634 (select, dir) <- (default_dirs ::: dirs).map((false, _)) ::: select_dirs.map((true, _)) |
632 (select, dir) <- (default_dirs ::: dirs).map((false, _)) ::: select_dirs.map((true, _)) |
635 info <- load_dir(select, dir) |
633 info <- load_dir(select, check_session_dir(dir)) |
636 } yield info) |
634 } yield info) |
637 } |
635 } |
638 |
636 |
639 |
637 |
640 |
638 |