On Nov 18, 3:03 am, Peter Schmitz <
ps.hask...@gmail.com> wrote:
> I am able to use System.Cmd (system) to invoke a shell command
> and interpret the results.
>
> Please see the code below that works okay for one such command.
> (I invoke a program, passing two args.)
>
> I am wondering how to generalize this to do likewise for a
> series of commands, where the varying args (filenames, in this
> case) are in a list ('inOutLeafs').
>
> I will also want to accumulate some results; probably just a
> failure count at this time.
>
> Any advice or pointers to examples would be much appreciated.
>
> Thanks in advance,
> -- Peter
>
>
>
>
>
>
>
>
>
> > run :: ... -> IO (Int) -- will return a fail count
> > run
> > -- some args to this function here...
> > = do
> > -- ... set up: inputLeafs, outputLeafs, etc.
>
> > -- zip two lists of filenames:
> > let inOutLeafs = zip inputLeafs outputLeafs
>
> > -- the first pair for the first command:
> > let (inFile1,outFile1) = head inOutLeafs
>
> > -- build 1st command using 1st pair of filenames:
> > let cmd1 = ...
>
> > exitCode <- system cmd1
> > case (exitCode) of
> > ExitSuccess -> do
> > putStrLn $ "-- OK."
> > return 0
> > ExitFailure failCnt -> do
> > putStrLn $ "-- Failed: " ++ show failCnt
> > return 1
>