-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A DSL to describe common shell operations and interpeters for running them locally and remotely. -- -- A DSL to describe common shell operations and interpeters for running -- them locally and remotely. @package handsy @version 0.0.2 module System.Handsy -- | Base functor for our dsl data HandsyF k Command :: String -> [String] -> ByteString -> ((ExitCode, ByteString, ByteString) -> k) -> HandsyF k ReadFile :: String -> (ByteString -> k) -> HandsyF k WriteFile :: String -> ByteString -> (() -> k) -> HandsyF k type Handsy = FreeT HandsyF IO writeFile :: MonadFree HandsyF m_a7tV => String -> ByteString -> m_a7tV () readFile :: MonadFree HandsyF m_a7tR => String -> m_a7tR ByteString command :: MonadFree HandsyF m_a7tf => String -> [String] -> ByteString -> m_a7tf (ExitCode, ByteString, ByteString) run :: Handsy a -> IO a instance Functor HandsyF module System.Handsy.Remote data RemoteOptions RemoteOptions :: (String, [String]) -> RemoteOptions sshCommand :: RemoteOptions -> (String, [String]) runRemote :: RemoteOptions -> Handsy a -> IO a pushFile :: FilePath -> FilePath -> Handsy () pullFile :: FilePath -> FilePath -> Handsy ()