我試圖從我的構建腳本中互動式地運行一個命令:
我試圖從我的構建腳本中互動式地運行一個命令。
#!/usr/bin/env stack
{- stack
腳本
--resolver lts-18.8
--ghc-options -Wall
-}
import Development.Shake
main :: IO ( )
main = shakeArgs shakeOptions $do
phony "cfg" $ do
command_ [] "vim" [] 。
但它并沒有作業。我想我需要分配一個終端,以便能夠以互動方式運行vim。我怎樣才能做到這一點呢?
uj5u.com熱心網友回復:
用于運行命令的Shake函式(command, cmd等)是為無需用戶互動而運行的批量命令設計的。雖然你可以做一些事情來使它們與像Vim這樣的東西更加兼容(例如InheritStdin),但Shake的一些方面可能會使事情變得更加困難(例如捕獲stderr,這可能會導致記憶體泄漏)。
令人高興的是,Shake可以和System.Process中的函式一樣作業,所以你可以不呼叫command,而是撰寫:
liftIO $ System. Process.createProcess $ System.Process.shell "vim" .
createProcess需要一個記錄,其中有許多型別的行程相關設定,因此可以自定義,以使Vim作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316944.html
標籤:
