diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-18 16:26:12 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-18 16:26:12 +0000 |
| commit | 944eea8de9e077d1b3ee1a9edad9c52e9dbc2bd0 (patch) | |
| tree | 82f128532a90a8e745e4ebc1875eeb7a8f9b0701 /src-3.0/GF/Command/Commands.hs | |
| parent | 8e5b78f886065d082677101b28c44d7980763eb0 (diff) | |
system command pipes (sp)
Diffstat (limited to 'src-3.0/GF/Command/Commands.hs')
| -rw-r--r-- | src-3.0/GF/Command/Commands.hs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src-3.0/GF/Command/Commands.hs b/src-3.0/GF/Command/Commands.hs index 7441e6fb5..b66d4764d 100644 --- a/src-3.0/GF/Command/Commands.hs +++ b/src-3.0/GF/Command/Commands.hs @@ -29,6 +29,7 @@ import GF.Data.Operations import Data.Maybe import qualified Data.Map as Map +import System type CommandOutput = ([Exp],String) ---- errors, etc @@ -403,6 +404,26 @@ allCommands pgf = Map.fromList [ ("number","the maximum number of questions") ] }), + ("sp", emptyCommandInfo { + longname = "system_pipe", + synopsis = "send argument to a system command", + syntax = "sp -command=\"SYSTEMCOMMAND\" STRING", + exec = \opts arg -> do + let tmpi = "_tmpi" --- + let tmpo = "_tmpo" + writeFile tmpi $ toString arg + let syst = optComm opts ++ " " ++ tmpi + system $ syst ++ " <" ++ tmpi ++ " >" ++ tmpo + s <- readFile tmpo + return $ fromString s, + flags = [ + ("command","the system command applied to the argument") + ], + examples = [ + "ps -command=\"wc\" \"foo\"", + "gt | l | sp -command=\"grep \\\"who\\\"\" | sp -command=\"wc\"" + ] + }), ("ut", emptyCommandInfo { longname = "unicode_table", synopsis = "show a transliteration table for a unicode character set", @@ -458,6 +479,7 @@ allCommands pgf = Map.fromList [ lang -> chunks ',' lang optLang opts = head $ optLangs opts ++ ["#NOLANG"] optCat opts = valIdOpts "cat" (lookStartCat pgf) opts + optComm opts = valStrOpts "command" "" opts optNum opts = valIntOpts "number" 1 opts optNumInf opts = valIntOpts "number" 1000000000 opts ---- 10^9 |
