| Copyright | 2019 Emily Pillmore |
|---|---|
| License | BSD |
| Maintainer | Emily Pillmore <emilypi@cohomolo.gy> |
| Stability | Experimental |
| Portability | TypeFamilies |
| Safe Haskell | Safe |
| Language | Haskell2010 |
System.Process.Microlens.CmdSpec
Description
This module provides the associated optics and combinators
for working with CmdSpec objects. CmdSpec consists of two
cases: a Shell command, which is a command to execute naively in the shell,
and a Raw command which is a command path together with its arguments.
CmdSpec has two cases, and therefore a Traversal into those two cases.
There is also a convenient Traversal available for working with the arglist
of a Raw command and combinators for working with arguments monoidally.
We provide classy variants for all useful traversals
Synopsis
- _RawCommand :: Traversal' CmdSpec (FilePath, [String])
- _ShellCommand :: Traversal' CmdSpec String
- arguments :: Traversal' CmdSpec [String]
- class IsShell a where
- _Shell :: Traversal' a String
- class IsRaw a where
- _Raw :: Traversal' a (FilePath, [String])
- arguing :: String -> CmdSpec -> CmdSpec
Traversals
_RawCommand :: Traversal' CmdSpec (FilePath, [String]) Source #
A Traversal' into the RawCommand case of a CmdSpec
Examples:
>>>RawCommand "/bin/ls" ["-l"] ^? _RawCommandJust ("/bin/ls",["-l"])
>>>RawCommand "/bin/ls" ["-l"] ^? _ShellCommandNothing
>>>RawCommand "/bin/ls" ["-l"] ^. _RawCommand . _1"/bin/ls"
>>>RawCommand "/bin/ls" ["-l"] ^. _RawCommand . _2["-l"]
_ShellCommand :: Traversal' CmdSpec String Source #
A Traversal' into the ShellCommand case of a CmdSpec
Examples:
>>>ShellCommand "ls -l" ^? _ShellCommandJust "ls -l"
>>>RawCommand "/bin/ls" ["-l"] ^? _ShellCommandNothing
arguments :: Traversal' CmdSpec [String] Source #
Traversal' into the arguments of a command
Examples:
>>>RawCommand "/bin/ls" ["-l"] ^. arguments["-l"]
Classy Traversals
class IsShell a where Source #
Classy Traversal' into the shell command of a CmdSpec
Methods
_Shell :: Traversal' a String Source #
Classy Traversal' into the raw command of a CmdSpec