diff options
author | Ben Sima <ben@bsima.me> | 2024-05-01 23:41:47 -0400 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2024-05-09 21:38:52 -0400 |
commit | dd0bc9610cf0e6842f5d5ac67a73f2fd6f4eba2f (patch) | |
tree | 2a208df1e505bbafca1382cdd2ceb27a5185a6ee /Biz/Bild | |
parent | 2fac80aa1727a200f576f899bb325f523842c3ff (diff) |
Improve Haskell documentation and bild test
Added docs to core libraries and expanded the Example.hs test to test for all
the things I want to support in a build.
Diffstat (limited to 'Biz/Bild')
-rw-r--r-- | Biz/Bild/Deps/Haskell.nix | 1 | ||||
-rw-r--r-- | Biz/Bild/Example.hs | 38 |
2 files changed, 38 insertions, 1 deletions
diff --git a/Biz/Bild/Deps/Haskell.nix b/Biz/Bild/Deps/Haskell.nix index 8115688..04f3a74 100644 --- a/Biz/Bild/Deps/Haskell.nix +++ b/Biz/Bild/Deps/Haskell.nix @@ -44,6 +44,7 @@ "regex-applicative" "req" "safecopy" + "saltine" "servant" "servant-auth" "servant-auth-server" diff --git a/Biz/Bild/Example.hs b/Biz/Bild/Example.hs index 87472bb..66812ba 100644 --- a/Biz/Bild/Example.hs +++ b/Biz/Bild/Example.hs @@ -1,9 +1,45 @@ +{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE NoImplicitPrelude #-} -- : out example module Biz.Bild.Example where +-- Both internal and external language dependencies are detected automatically +-- by bild, for example here we import 'Crypto.Saltine' and list 'saltine' in +-- 'Deps/Haskell.nix' to indicate that this is the package we want made +-- available to bild, which will index the external package and record its +-- modules for lookup. import Alpha +import qualified Biz.Cli as Cli +import qualified Biz.Test as Test +import qualified Crypto.Saltine as Saltine +import qualified Crypto.Saltine.Core.SecretBox as Saltine main :: IO () -main = putStrLn "Hello world" +main = Cli.main <| Cli.Plan help move test pure + +move :: Cli.Arguments -> IO () +move _ = putStrLn "Hello world" + +test :: Test.Tree +test = + Test.group + "Biz.Bild.Example" + [ Test.unit "can use saltine package" <| do + Saltine.sodiumInit + k <- Saltine.newKey + n <- Saltine.newNonce + let msg = "foobar" + let encryptedMsg = Saltine.secretbox k n <| str "foobar" + Just msg Test.@=? str </ Saltine.secretboxOpen k n encryptedMsg + ] + +help :: Cli.Docopt +help = + [Cli.docopt| +example that tests basic haskell build + +Usage: + example + example test +|] |