Skip to content

seanparsons/haskellscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shell Scripting With Haskell

Build Status

This tool provides the ability to script in a shell with Haskell (including dependencies) the same way that has been possible with bash scripts or Python.

Examples

Print out JSON constructed with Aeson

Lookup weather for your current IP address

Prerequisites

A sandbox capable install of Cabal.

Howto

The script falls into three main parts:

  • The hashbang first line:
    #!/usr/bin/env haskellscript
  • Dependencies (potentially including versions):
    --#aeson
  • The code:
    {-# LANGUAGE OverloadedStrings #-}
    import Data.Aeson
    import Data.ByteString.Lazy hiding (putStrLn, unpack)
    import Data.Text
    import Data.Text.Encoding
    jsonExample = object ["Test" .= True, "Example" .= True]
    main = putStrLn $ unpack $ decodeUtf8 $ toStrict $ encode jsonExample 

Note that because the dependencies specified are hashed to enable re-use it's worth specifying exact versions across multiple scripts to prevent the version used being quite old after a while.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published