hapistrano- A deployment library for Haskell applications

Copyright© 2015-Present Stack Builders
MaintainerJuan Paucar <jpaucar@stackbuilders.com>
Safe HaskellNone



Core Hapistrano functions that provide basis on which all the functionality is built.



runHapistrano Source #


:: MonadIO m 
=> Maybe SshOptions

SSH options to use or Nothing if we run locally

-> Shell

Shell to run commands

-> (OutputDest -> String -> IO ())

How to print messages

-> Hapistrano a

The computation to run

-> m (Either Int a)

Status code in Left on failure, result in Right on success

Run the Hapistrano monad. The monad hosts exec actions.

failWith :: Int -> Maybe String -> Hapistrano a Source #

Fail returning the following status code and message.

exec :: forall a. Command a => a -> Hapistrano (Result a) Source #

Run the given sequence of command. Whether to use SSH or not is determined from settings contained in the Hapistrano monad configuration. Commands that return non-zero exit codes will result in short-cutting of execution. NOTE: the commands executed with exec will create their own pipe and will stream output there and once the command finishes its execution it will parse the result.

execWithInheritStdout :: Command a => a -> Hapistrano () Source #

Same as exec but it streams to stdout only for _GenericCommand_s

scpFile Source #


:: Path Abs File

Location of the file to copy

-> Path Abs File

Where to put the file on target machine

-> Hapistrano () 

Copy a file from local path to target server.

scpDir Source #


:: Path Abs Dir

Location of the directory to copy

-> Path Abs Dir

Where to put the dir on target machine

-> Hapistrano () 

Copy a local directory recursively to target server.