2015-09-15 19 views
8

Ho recentemente iniziato a utilizzare la libreria Haskell Turtle per sostituire alcuni dei miei script di shell.È possibile eseguire il debug degli script Turtle (equivalente al flag "-x" in bash)?

C'è un modo per abilitare in qualche modo l'eco dei comandi di Turtle incorporati (come cd) ala set -x in script bash? Trovo abbastanza problematico eseguire il debug degli script Turtle nei casi in cui vengono eseguiti molti comandi e uno di essi non riesce con eccezioni (ad esempio il comando cp con Exception:openBinaryFile: does not exist). In alternativa hai qualche consiglio su come isolare rapidamente problemi come questi, in modo da non dover interspeare i comandi puStrLn/echo in tutto il mio script?

risposta

5

Purtroppo, non è possibile, poiché la tartaruga non fornisce traccia. Ad esempio, mv è definito solo con funzione di Haskell (nessuna chiamata shell), quindi non c'è modo di stampare qualsiasi cosa quando è Ran:

mv :: MonadIO io => FilePath -> FilePath -> io() 
mv oldPath newPath = liftIO (Filesystem.rename oldPath newPath) 

Questa limitazione citata nella documentazione, in cui l'autore raccomanda per dare un'occhiata a Shelly, che è simile, ma di fornire funzionalità aggiuntive:

tartaruga è progettato per essere principiante-friendly, ma come risultato manca alcune caratteristiche, come il tracciamento dei comandi. Se ti senti a tuo agio nell'uso di tartaruga allora dovresti anche controllare la libreria Shelly che fornisce funzionalità simili.

Problemi correlati