tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

sourceModuleLockPhase.tri (910B)


      1 !import "source.lock"   !Local
      2 !import "source.module" !Local
      3 !import "io"            !Local
      4 !import "prelude"       !Local
      5 root = "__ROOT__"
      6 expectedHash = "__EXPECTED__"
      7 preludeHash = "__PRELUDE__"
      8 phase = "__PHASE__"
      9 main = io (onResult_ (do onOk_
     10   source <- readFile "demos/modules/app.tri"
     11   _ <- sourceModulePinAlias root "prelude" preludeHash
     12   _ <- lazyBool
     13     (_ : pure (ok t t))
     14     (_ : sourceLockUpdate root "app" source)
     15     (equal? phase "move")
     16   pinned <- sourceLockBuild root "app" source
     17   _ <- pure (if (equal? pinned expectedHash)
     18     (ok t t) (err "unexpected locked manifest" t))
     19   tree <- sourceModuleLoadSelected root pinned "main"
     20   _ <- pure (if (equal? tree (if (equal? phase "update") 43 42))
     21     (ok t t) (err "unexpected locked executable" t))
     22   pure (ok t t))
     23   (problem : putStrLn (append "lock-failed: " problem))
     24   (_ : putStrLn (append "lock-" (append phase "-ok"))))
     25 main