diff options
| author | hallgren <hallgren@chalmers.se> | 2013-11-12 18:07:38 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2013-11-12 18:07:38 +0000 |
| commit | fa4c327463f01eae2e0fda7deb82c4e9f40797cf (patch) | |
| tree | 306df9c415043dc3c14404330e8645a7b55a257b /src/compiler/GF/Command/Commands.hs | |
| parent | 0090b85002e4f609be7be107d9ac251cfd436afc (diff) | |
Fix Issue 60: Weird output when executing system commands from the gf shell
The system_pipe (aka "?") command creates a temporary file _tmpi containing
the input of the system command. It *both* appends _tmpi as an extra argument
to the system command line *and* adds an input redirection "< _tmpi". (It
also uses and output redirection "> _tmpo" to captures the output of the
command.)
With this patch, the _tmpi argument is no longer appended to the command line.
This allows system_pipe to work with pure filters, such as the "tr" commands,
but it will no longer work with commands that require an input file name.
(It is possible to use write_file instead...)
TODO: it would also be fairly easy to eliminate the creation of the _tmpi and
_tmpo files altogether.
Diffstat (limited to 'src/compiler/GF/Command/Commands.hs')
| -rw-r--r-- | src/compiler/GF/Command/Commands.hs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/compiler/GF/Command/Commands.hs b/src/compiler/GF/Command/Commands.hs index be309b3d7..0d1b9695a 100644 --- a/src/compiler/GF/Command/Commands.hs +++ b/src/compiler/GF/Command/Commands.hs @@ -869,10 +869,9 @@ allCommands = Map.fromList [ let tmpi = "_tmpi" --- let tmpo = "_tmpo" restricted $ writeFile tmpi $ toString arg - let syst = optComm opts ++ " " ++ tmpi + let syst = optComm opts -- ++ " " ++ tmpi restrictedSystem $ syst ++ " <" ++ tmpi ++ " >" ++ tmpo - s <- restricted $ readFile tmpo - return $ fromString s, + fmap fromString $ restricted $ readFile tmpo, flags = [ ("command","the system command applied to the argument") ], |
