Update init to produce package.lean

This commit is contained in:
Mac Malone 2021-06-06 21:56:58 -04:00
parent d066872549
commit 99d458c646
7 changed files with 20 additions and 19 deletions

View file

@ -62,7 +62,7 @@ This command creates a new Lean package with the given name in the current
directory."
def getRootPkg : IO Package := do
let cfg ← PackageConfig.fromLeanFile leanConfigFile
let cfg ← PackageConfig.fromLeanFile leanPkgFile
if cfg.leanVersion ≠ leanVersionString then
IO.eprintln $ "\nWARNING: Lean version mismatch: installed version is " ++
leanVersionString ++ ", but package requires " ++ cfg.leanVersion ++ "\n"

View file

@ -5,7 +5,7 @@ Authors: Gabriel Ebner, Sebastian Ullrich, Mac Malone
-/
import Leanpkg2.Git
import Leanpkg2.Proc
import Leanpkg2.TomlConfig
import Leanpkg2.LeanConfig
namespace Leanpkg2
@ -18,16 +18,19 @@ def mainFileContents :=
IO.println \"Hello, world!\"
"
def leanpkgFileContents (pkgName : String) :=
s!"[package]
name = \"{pkgName}\"
version = \"0.1\"
lean_version = \"{leanVersionString}\"
def leanPkgFileContents (pkgName : String) :=
s!"import Leanpkg2.Package
def package : Leanpkg2.PackageConfig := \{
name := \"{pkgName}\"
version := \"0.1\"
leanVersion := \"{leanVersionString}\"
}
"
open Git in
def initPkg (pkgName : String) (fromNew : Bool) : IO Unit := do
IO.FS.writeFile leanpkgToml (leanpkgFileContents pkgName)
def init (pkgName : String) : IO Unit := do
IO.FS.writeFile leanPkgFile (leanPkgFileContents pkgName)
IO.FS.writeFile ⟨s!"{pkgName.capitalize}.lean"⟩ mainFileContents
let h ← IO.FS.Handle.mk ⟨".gitignore"⟩ IO.FS.Mode.append (bin := false)
h.putStr initGitignoreContents
@ -38,5 +41,3 @@ def initPkg (pkgName : String) (fromNew : Bool) : IO Unit := do
checkoutBranch upstreamBranch
) <|>
IO.eprintln "WARNING: failed to initialize git repository"
def init (pkgName : String) := initPkg pkgName false

View file

@ -11,7 +11,7 @@ open Lean Elab System
namespace Leanpkg2
def leanConfigFile : FilePath := "package.lean"
def leanPkgFile : FilePath := "package.lean"
namespace PackageConfig

View file

@ -69,7 +69,7 @@ def solveDepsCore (pkg : Package) : (maxDepth : Nat) → Solver Unit
let newDeps ← pkg.dependencies.filterM (notYetAssigned ·.name)
for dep in newDeps do
let dir ← materialize pkg.dir dep
let cfg ← PackageConfig.fromLeanFile <| dir / leanConfigFile
let cfg ← PackageConfig.fromLeanFile <| dir / leanPkgFile
modify (·.insert dep.name ⟨dir, cfg⟩)
for dep in newDeps do
let depPkg ← resolvedPackage dep.name

View file

@ -1,6 +1,6 @@
import Leanpkg2.Package
def package : Leanpkg2.PackageConfig := {
name := "hello",
version := "1.0",
name := "hello"
version := "1.0"
}

View file

@ -1,6 +1,6 @@
import Leanpkg2.Package
def package : Leanpkg2.PackageConfig := {
name := "a",
version := "1.0",
name := "a"
version := "1.0"
}

View file

@ -3,8 +3,8 @@ import Leanpkg2.Build
open Leanpkg2 System
def package : PackageConfig := {
name := "b",
version := "1.0",
name := "b"
version := "1.0"
dependencies := [
{ name := "a", src := Source.path (FilePath.mk ".." / "a") }
]