@hackage process-qq0.2.0
Quasi-Quoters for exec process
Categories
License
BSD-3-Clause
Maintainer
Hideyuki Tanaka <tanaka.hideyuki@gmail.com>
Links
Versions
- 0.2.0 Mon, 5 Dec 2011
Installation
Dependencies (8)
- base >=4 && <5
- bytestring >=0.9 && <0.10
- enumerator >=0.4.16 && <0.5
- mtl >=2.0 && <2.1
- process >=1.0 && <1.1
- shakespeare-text >=0.10 && <0.11 Show all…
Dependents (1)
@hackage/acme-everything
process-qq: A Quasi-Quoter to execute processes
About
This is a simple package for executing external process using quasi-quoters.
Install
$ cabal update
$ cabal install process-qq
API
process-qq has three quasi-quoters, cmd, lcmd and enumCmd.
The result type of cmd is (Strict) ByteString,
lcmd is Lazy ByteString,
enumCmd's is MonadIO m => Enumerator ByteString m a.
Command is failed, an Exception is thrown.
Command is executed in run-time, not compile-time.
Example
- Invoke a process simply
{-# LANGUAGE QuasiQuotes #-}
import System.Process.QQ
main = print =<< [cmd|ls|]
- Enumerate a process
main =
run_ $ [enumCmd|curl http://www.google.com/|] $$ iterHandle stdout
- Unquoting (syntax is same as shakespeare-text)
main = do
[url] <- getArgs
print =<< [cmd|curl #{url}|]