riju/langs/purescript.yaml

73 lines
1.4 KiB
YAML

id: "purescript"
aliases:
- "purs"
- "pure"
name: "PureScript"
install:
prepare:
apt:
- libtinfo5
npm:
- purescript
- spago
apt:
- libtinfo5
npm:
- purescript
- spago
manual: |
install -d "${pkg}/opt/purescript/skel-home"
install -d "${pkg}/opt/purescript/skel-src"
spago init -C
rm -rf .gitignore test
sed -i 's#, "test/\*\*/\*\.purs"##' spago.dhall
cat <<"EOF" > src/Main.purs
module Main where
import Prelude
import Effect (Effect)
import Effect.Console (log)
main :: Effect Unit
main = log "Hello, world!"
EOF
spago build
spago repl < /dev/null
rm -rf src
shopt -s dotglob
cp -R --preserve=timestamps * "${pkg}/opt/purescript/skel-src/"
cp -R --preserve=timestamps "${HOME}/.cache" "${pkg}/opt/purescript/skel-home/"
setup: |
shopt -s dotglob
cp -R --preserve=timestamps /opt/purescript/skel-home/* "${HOME}/"
cp -R --preserve=timestamps /opt/purescript/skel-src/* "${PWD}/"
repl: |
spago repl
main: "src/Main.purs"
template: |
module Main where
import Prelude
import Effect (Effect)
import Effect.Console (log)
main :: Effect Unit
main = do
log "Hello, world!"
run: |
if spago build -n; then spago run -n; (echo 'import Prelude'; echo 'import Main') > .purs-repl; spago repl; else echo 'import Prelude' > .purs-repl; spago repl -d; fi
timeoutFactor: 2