39 lines
1.1 KiB
Text
39 lines
1.1 KiB
Text
/-
|
|
Copyright (c) 2017 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Gabriel Ebner, Sebastian Ullrich
|
|
-/
|
|
namespace Lake
|
|
|
|
def leanVersionStringCore :=
|
|
s!"{Lean.version.major}.{Lean.version.minor}.{Lean.version.patch}"
|
|
|
|
def origin := "leanprover/lean4"
|
|
|
|
def leanVersionString :=
|
|
if Lean.version.isRelease then
|
|
s!"{origin}:{leanVersionStringCore}"
|
|
else if Lean.version.specialDesc ≠ "" then
|
|
s!"{origin}:{Lean.version.specialDesc}"
|
|
else
|
|
s!"{origin}:master"
|
|
|
|
def uiLeanVersionString :=
|
|
if Lean.version.isRelease then
|
|
leanVersionStringCore
|
|
else if Lean.version.specialDesc ≠ "" then
|
|
s!"{leanVersionStringCore}-{Lean.version.specialDesc}"
|
|
else
|
|
s!"master ({leanVersionStringCore})"
|
|
|
|
def verifyLeanVersion : IO PUnit := do
|
|
let out ← IO.Process.output {
|
|
cmd := "lean",
|
|
args := #["--version"]
|
|
}
|
|
if out.exitCode == 0 then
|
|
unless out.stdout.drop 14 |>.startsWith uiLeanVersionString do
|
|
throw <| IO.userError <|
|
|
s!"expected {uiLeanVersionString}, but got {out.stdout.trim}"
|
|
else
|
|
throw <| IO.userError <| "missing lean!"
|