microlens-process-0.1.0.1: Micro-optics for the process library

Copyright2019 Emily Pillmore
LicenseBSD
MaintainerEmily Pillmore <emilypi@cohomolo.gy>
StabilityExperimental
PortabilityTypeFamilies, RankNTypes
Safe HaskellSafe
LanguageHaskell2010

System.Process.Microlens

Contents

Description

This module provides all of the optical exports, as well ask any associated combinators. For just the optics, see Optics, or if you are in need of something lighter weight, just for working with a CreateProcess in terms of getters and setters, see https://hackage.haskell.org/package/microlens

For more information on usage and how to work with lenses, see http://github.com/ekmett/lens/wiki and the tests for example uses. You can also ask questions on Freenode in the #haskell-lens channel.

Synopsis

Lenses

cmdspec_ :: Lens' CreateProcess CmdSpec Source #

Lens into the cmdspec entry of the CreateProcess record

cwd_ :: Lens' CreateProcess (Maybe FilePath) Source #

Lens into the cwd entry of the CreateProcess record

env_ :: Lens' CreateProcess (Maybe [(String, String)]) Source #

Lens into the env entry of the CreateProcess record

stdin_ :: Lens' CreateProcess StdStream Source #

Lens into the std_in entry of the CreateProcess record

stdout_ :: Lens' CreateProcess StdStream Source #

Lens into the std_out entry of the CreateProcess record

stderr_ :: Lens' CreateProcess StdStream Source #

Lens into the std_err entry of the CreateProcess record

closefds :: Lens' CreateProcess Bool Source #

Lens into the close_fds entry of the CreateProcess record

newsession :: Lens' CreateProcess Bool Source #

Lens into the new_session entry of the CreateProcess record

childgroup :: Lens' CreateProcess (Maybe CGid) Source #

Lens into the child_group entry of the CreateProcess record

childuser :: Lens' CreateProcess (Maybe CUid) Source #

Lens into the child_user entry of the CreateProcess record

Traversals

arguments :: Traversal' CmdSpec [String] Source #

Traversal' into the arguments of a command

Examples:

>>> RawCommand "/bin/ls" ["-l"] ^. arguments
["-l"]

Classy Lenses

class HasStdin a where Source #

Classy lens for types with a stdin

class HasStdout a where Source #

Classy lens for types with a stdout

class HasStderr a where Source #

Classy lens for types with a stderr

Combinators

arguing :: String -> CmdSpec -> CmdSpec Source #

Append an argument to the argument list of a RawCommand

Examples:

>>> arguing "-h" $ RawCommand "/bin/ls" ["-l"]
RawCommand "/bin/ls" ["-l","-h"]
>>> arguing "-h" (RawCommand "/bin/ls" ["-l"]) ^. arguments
["-l","-h"]