blob: 025391ca4735498ac2c09b5e057484cca2690e05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE NoImplicitPrelude #-}
-- : out example
module Omni.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 Crypto.Saltine as Saltine
import qualified Crypto.Saltine.Core.SecretBox as Saltine
import qualified Omni.Cli as Cli
import qualified Omni.Test as Test
main :: IO ()
main = Cli.main <| Cli.Plan help move test pure
move :: Cli.Arguments -> IO ()
move _ = putStrLn "Hello world"
test :: Test.Tree
test =
Test.group
"Omni.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
|]
|