I’m looking into how I’ve invoked stack
to turn a Haskell source file into an executable shell script before and comparing it to the official documentation.
In my VOD repository, I have this migration script which contains the following at the top:
#!/usr/bin/env stack
{- stack runghc
--resolver lts-21.1
--package aeson
--package aeson-pretty
--package bytestring
--package containers
--package non-empty-text
--package relude
--package req
--package safe
--package text
--package timespan
--package turtle
--package tz
-}
The documentation now appears to recommend using stack script
instead of stack runghc
:
#!/usr/bin/env stack
-- stack script --snapshot lts-22.28 --package turtle
{-# LANGUAGE OverloadedStrings #-}
import Turtle (echo)
main = echo "Hello World!"
Though, it still supports runghc
for backwards compatibility reasons.