process-qq: A Quasi-Quoter to execute processes
===============================================
# About
This is a simple package for executing external process using quasi-quoters.
# Install
~~~ {.bash}
$ 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
~~~ {.haskell}
{-# LANGUAGE QuasiQuotes #-}
import System.Process.QQ
main = print =<< [cmd|ls|]
~~~
* Enumerate a process
~~~ {.haskell}
main =
run_ $ [enumCmd|curl http://www.google.com/|] $$ iterHandle stdout
~~~
* Unquoting (syntax is same as [shakespeare-text](http://hackage.haskell.org/package/shakespeare-text))
~~~ {.haskell}
main = do
[url] <- getArgs
print =<< [cmd|curl #{url}|]
~~~