data Command = MkCommand String (List String)
Un programme à exécuter : son nom (trouvé dans le PATH) ou son chemin, et ses arguments, chacun passé littéralement (pas d'analyse shell, pas de globbing).
import System.Processdata Command = MkCommand String (List String)
Un programme à exécuter : son nom (trouvé dans le PATH) ou son chemin, et ses arguments, chacun passé littéralement (pas d'analyse shell, pas de globbing).
data Output = MkOutput String String Int
Le résultat de l'exécution d'une Command : ce qu'elle a écrit sur la sortie standard et l'erreur standard, et son code de sortie (0 = succès ; 127 = n'a pas pu être démarré).
command : String -> List String -> Command
Construit une Command. command "echo" ["hello", "world"] exécute echo avec deux arguments et sans shell.
run : Command -> Output with Process
Exécute une commande et collecte son Output. Un code de sortie NON NUL est une donnée ordinaire, pas une erreur ; seul un programme qui ne peut pas être DÉMARRÉ est spécial (il revient avec le code 127 et un message sur stderr).
stdout : Output -> String
Ce que le programme a écrit sur la sortie standard.
stderr : Output -> String
Ce que le programme a écrit sur l'erreur standard.
exitCode : Output -> Int
Le code de sortie du programme (0 = succès, 127 = n'a pas pu être démarré).