simple-cmd: Simple String-based process commands

[ bsd3, library, system ] [ Propose Tags ]

Simple wrappers over System.Process (readProcess, readProcessWithExitCode, rawSystem, and createProcess). The idea is to provide some common idioms for calling out to commands from programs. For more advanced shell-scripting or streaming use turtle, shelly, command, etc.

[Skip to Readme]
Versions [RSS] [faq], 0.1.1, 0.1.2, 0.1.3,, 0.1.4, 0.2.0,, 0.2.1, 0.2.2, 0.2.3
Change log
Dependencies base (<5), directory, extra, filepath, process (>=, unix [details]
License BSD-3-Clause
Copyright 2017-2020 Jens Petersen <>
Author Jens Petersen
Category System
Source repo head: git clone
Uploaded by JensPetersen at 2020-12-20T09:40:07Z
Distributions Fedora:0.2.3, LTSHaskell:0.2.3, NixOS:0.2.3, Stackage:0.2.3
Downloads 4830 total (99 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-12-20 [all 1 reports]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees


Readme for simple-cmd-0.2.3

[back to package description]

Build Status Hackage Stackage LTS Stackage Nightly


Some simple String wrappers of readProcess, readProcessWithExitCode, rawSystem from the Haskell process library.


import SimpleCmd
cmd_ :: String -> [String] -> IO ()

outputs to stdout. For example

cmd_ "echo" ["Hello"]
cmd_ "git" ["clone", url]

This can shortened to git_ "clone" [url].

cmd :: String -> [String] -> IO String

returns stdout as a String. eg

date <- cmd "date" []

There are also cmdBool, cmdMaybe, cmdList, shell, and others.

Simple pipes are also supported:

pipe_ ("echo",["hello"]) ("grep",["ello"])

Other examples:

gitBranch :: IO String
grep_ pat file :: IO Bool
sudo_ c args :: IO ()

See the library documentation for more details.