Запуск интерактивных команд с библиотекой haskell turtle
Я пытаюсь запустить интерактивную команду с библиотекой haskell turtle следующим образом:
#!/usr/bin/env stack
-- stack --install-ghc runghc --package turtle
{-# LANGUAGE OverloadedStrings #-}
import Turtle
main = procs "python" [] empty
(Я также попробовал функцию оболочки, но она тоже не работает.) Когда я запускаю ее, ничего не происходит:
$ ./turtleTest.hs
$
Но если я изменю команду "python" на "ls", это сработает.
Как запустить интерактивную команду, например, python repl с библиотекой turtle?
2 ответа
Вот полный рабочий пример, извлеченный из комментариев. Если запустить интерактивный процесс через Turtle, можно сделать что-то вроде этого:
#!/usr/bin/env stack
-- stack script --resolver lts-14.20 --package turtle --package process
{-# LANGUAGE OverloadedStrings #-}
import System.Process (callProcess)
import Turtle (sh, liftIO)
main :: IO ()
main = sh $ liftIO $ callProcess "python" []
{-# LANGUAGE OverloadedStrings #-}
import Turtle.Prelude (proc, procs, shell, shells)
main :: IO ()
main = do
procs "ls" [] mempty --(without ExitCode)
procs "ls" ["-la"] mempty --(without ExitCode)
proc "pwd" [] mempty --(with ExitCode)
proc "ls" ["-la"] mempty --(with ExitCode)
shells "ls -la" mempty --(without ExitCode)
shell "pwd" mempty --(with ExitCode)
shell "ls -la" mempty --(with ExitCode)