-- 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.3 module System.Handsy data HandsyF k Command :: FilePath -> [String] -> ByteString -> ((ExitCode, ByteString, ByteString) -> k) -> HandsyF k ReadFile :: FilePath -> (ByteString -> k) -> HandsyF k WriteFile :: FilePath -> ByteString -> (() -> k) -> HandsyF k AppendFile :: FilePath -> ByteString -> (() -> k) -> HandsyF k type Handsy = FreeT HandsyF IO appendFile :: MonadFree HandsyF m_a7wC => FilePath -> ByteString -> m_a7wC () writeFile :: MonadFree HandsyF m_a7wx => FilePath -> ByteString -> m_a7wx () readFile :: MonadFree HandsyF m_a7wt => FilePath -> m_a7wt ByteString command :: MonadFree HandsyF m_a7vR => FilePath -> [String] -> ByteString -> m_a7vR (ExitCode, ByteString, ByteString) shell :: String -> Handsy (ExitCode, ByteString, ByteString) -- | Executes the actions locally run :: Handsy a -> IO a instance Functor HandsyF module System.Handsy.Remote data RemoteOptions RemoteOptions :: (FilePath, [String]) -> RemoteOptions sshCommand :: RemoteOptions -> (FilePath, [String]) -- | Executes the actions at a remote host runRemote :: RemoteOptions -> Handsy a -> IO a pushFile :: FilePath -> FilePath -> Handsy () pullFile :: FilePath -> FilePath -> Handsy ()