45 "export USER_HOME=" + File.bash_path(user_home) + "\n" + |
45 "export USER_HOME=" + File.bash_path(user_home) + "\n" + |
46 Isabelle_System.export_isabelle_identifier(isabelle_identifier) + script, |
46 Isabelle_System.export_isabelle_identifier(isabelle_identifier) + script, |
47 env = null, cwd = isabelle_home.file, redirect = redirect, echo = echo, strict = strict) |
47 env = null, cwd = isabelle_home.file, redirect = redirect, echo = echo, strict = strict) |
48 } |
48 } |
49 |
49 |
50 def resolve_components(echo: Boolean): Unit = { |
|
51 other_isabelle.bash( |
|
52 "bin/isabelle env ISABELLE_TOOLS=" + Bash.string(Isabelle_System.getenv("ISABELLE_TOOLS")) + |
|
53 " isabelle components -a", redirect = true, echo = echo).check |
|
54 } |
|
55 |
|
56 def getenv(name: String): String = |
50 def getenv(name: String): String = |
57 other_isabelle.bash("bin/isabelle getenv -b " + Bash.string(name)).check.out |
51 other_isabelle.bash("bin/isabelle getenv -b " + Bash.string(name)).check.out |
58 |
52 |
59 val isabelle_home_user: Path = Path.explode(getenv("ISABELLE_HOME_USER")) |
53 val isabelle_home_user: Path = Path.explode(getenv("ISABELLE_HOME_USER")) |
60 |
54 |
61 val etc: Path = isabelle_home_user + Path.explode("etc") |
55 val etc: Path = isabelle_home_user + Path.explode("etc") |
62 val etc_settings: Path = etc + Path.explode("settings") |
56 val etc_settings: Path = etc + Path.explode("settings") |
63 val etc_preferences: Path = etc + Path.explode("preferences") |
57 val etc_preferences: Path = etc + Path.explode("preferences") |
|
58 |
|
59 def resolve_components(echo: Boolean): Unit = { |
|
60 val missing = Path.split(getenv("ISABELLE_COMPONENTS_MISSING")) |
|
61 for (path <- missing) { |
|
62 Components.resolve(path.dir, path.file_name, progress = if (echo) progress else new Progress) |
|
63 } |
|
64 } |
64 |
65 |
65 |
66 |
66 /* components */ |
67 /* components */ |
67 |
68 |
68 def init_components( |
69 def init_components( |