71 lines
1.4 KiB
YAML
71 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
|