tutorial: add tutorial compiling script and conversion script
This commit is contained in:
parent
1d4e3a1e5b
commit
db602e8a79
4 changed files with 57 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -26,3 +26,4 @@ Setup
|
||||||
shell.nix
|
shell.nix
|
||||||
default.nix
|
default.nix
|
||||||
doc/_build
|
doc/_build
|
||||||
|
doc/venv
|
||||||
|
|
11
servant-examples/tutorial/check/check.sh
Executable file
11
servant-examples/tutorial/check/check.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
# tinc
|
||||||
|
|
||||||
|
cabal exec -- ghc -Wall -Werror -outputdir build-output ../api-type.lhs -O0 -c -pgmL markdown-unlit
|
||||||
|
#cabal exec -- ghc -Wall -Werror -outputdir build-output ../server.lhs -O0 -c -fno-warn-missing-methods -fno-warn-name-shadowing
|
||||||
|
#cabal exec -- ghc -Wall -Werror -outputdir build-output ../client.lhs -O0 -c -fno-warn-missing-methods -fno-warn-name-shadowing
|
||||||
|
#cabal exec -- ghc -Wall -Werror -outputdir build-output ../javascript.lhs -O0 -c -fno-warn-missing-methods
|
||||||
|
#cabal exec -- ghc -Wall -Werror -ibuild-output -outputdir build-output ../docs.lhs -O0 -c -fno-warn-missing-methods
|
15
servant-examples/tutorial/check/tinc.yaml
Normal file
15
servant-examples/tutorial/check/tinc.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
dependencies:
|
||||||
|
- name: servant
|
||||||
|
path: ../../../servant
|
||||||
|
- name: servant-server
|
||||||
|
path: ../../../servant-server
|
||||||
|
- name: servant-client
|
||||||
|
path: ../../../servant-client
|
||||||
|
- name: servant-js
|
||||||
|
path: ../../../servant-js
|
||||||
|
- name: servant-lucid
|
||||||
|
path: ../../../servant-lucid
|
||||||
|
- name: servant-docs
|
||||||
|
path: ../../../servant-docs
|
||||||
|
- name: servant-foreign
|
||||||
|
path: ../../../servant-foreign
|
30
servant-examples/tutorial/convert.hs
Normal file
30
servant-examples/tutorial/convert.hs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
import Control.Arrow
|
||||||
|
import Data.Foldable
|
||||||
|
import Data.List
|
||||||
|
import System.Environment
|
||||||
|
|
||||||
|
main = do
|
||||||
|
files <- getArgs
|
||||||
|
forM_ files $ \ file -> do
|
||||||
|
convertM file
|
||||||
|
|
||||||
|
convertM :: FilePath -> IO ()
|
||||||
|
convertM file = do
|
||||||
|
contents <- readFile file
|
||||||
|
seq (length contents) (return ())
|
||||||
|
writeFile file (convert contents)
|
||||||
|
|
||||||
|
convert :: String -> String
|
||||||
|
convert =
|
||||||
|
lines >>>
|
||||||
|
groupBy (\ a b -> take 1 a == take 1 b) >>>
|
||||||
|
map go >>>
|
||||||
|
concat >>>
|
||||||
|
unlines
|
||||||
|
where
|
||||||
|
go :: [String] -> [String]
|
||||||
|
go (a : r)
|
||||||
|
| ">" `isPrefixOf` a
|
||||||
|
= "``` haskell" : map (drop 2) (a : r) ++ "```" : []
|
||||||
|
go x = x
|
Loading…
Reference in a new issue