diff options
author | Joey Hess <joey@kitenet.net> | 2011-10-16 00:04:26 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-10-16 00:04:26 -0400 |
commit | 91366c896d9c9cb4519b451a64ed4d1e0ff52cb3 (patch) | |
tree | f9c7073002f68f1b53ba62890794474301a7253a /Utility | |
parent | 52c8244219dd90102818282b8b09186f2ce93a0f (diff) |
clean Annex stuff out of Utility/
Diffstat (limited to 'Utility')
-rw-r--r-- | Utility/Ssh.hs | 67 | ||||
-rw-r--r-- | Utility/Url.hs | 12 |
2 files changed, 4 insertions, 75 deletions
diff --git a/Utility/Ssh.hs b/Utility/Ssh.hs deleted file mode 100644 index 34e4390f6..000000000 --- a/Utility/Ssh.hs +++ /dev/null @@ -1,67 +0,0 @@ -{- git-annex remote access with ssh - - - - Copyright 2011 Joey Hess <joey@kitenet.net> - - - - Licensed under the GNU GPL version 3 or higher. - -} - -module Utility.Ssh where - -import Control.Monad.State (liftIO) - -import qualified Git -import Utility.SafeCommand -import Types -import Config -import Annex.UUID - -{- Generates parameters to ssh to a repository's host and run a command. - - Caller is responsible for doing any neccessary shellEscaping of the - - passed command. -} -sshToRepo :: Git.Repo -> [CommandParam] -> Annex [CommandParam] -sshToRepo repo sshcmd = do - s <- getConfig repo "ssh-options" "" - let sshoptions = map Param (words s) - let sshport = case Git.urlPort repo of - Nothing -> [] - Just p -> [Param "-p", Param (show p)] - let sshhost = Param $ Git.urlHostUser repo - return $ sshoptions ++ sshport ++ [sshhost] ++ sshcmd - -{- Generates parameters to run a git-annex-shell command on a remote - - repository. -} -git_annex_shell :: Git.Repo -> String -> [CommandParam] -> Annex (Maybe (FilePath, [CommandParam])) -git_annex_shell r command params - | not $ Git.repoIsUrl r = return $ Just (shellcmd, shellopts) - | Git.repoIsSsh r = do - uuid <- getRepoUUID r - sshparams <- sshToRepo r [Param $ sshcmd uuid ] - return $ Just ("ssh", sshparams) - | otherwise = return Nothing - where - dir = Git.workTree r - shellcmd = "git-annex-shell" - shellopts = Param command : File dir : params - sshcmd uuid = unwords $ - shellcmd : (map shellEscape $ toCommand shellopts) ++ - uuidcheck uuid - uuidcheck uuid - | null uuid = [] - | otherwise = ["--uuid", uuid] - -{- Uses a supplied function (such as boolSystem) to run a git-annex-shell - - command on a remote. - - - - Or, if the remote does not support running remote commands, returns - - a specified error value. -} -onRemote - :: Git.Repo - -> (FilePath -> [CommandParam] -> IO a, a) - -> String - -> [CommandParam] - -> Annex a -onRemote r (with, errorval) command params = do - s <- git_annex_shell r command params - case s of - Just (c, ps) -> liftIO $ with c ps - Nothing -> return errorval diff --git a/Utility/Url.hs b/Utility/Url.hs index 6ddeecc14..b5f5b78c0 100644 --- a/Utility/Url.hs +++ b/Utility/Url.hs @@ -12,13 +12,10 @@ module Utility.Url ( ) where import Control.Applicative -import Control.Monad.State (liftIO) import qualified Network.Browser as Browser import Network.HTTP import Network.URI -import Types -import Messages import Utility.SafeCommand import Utility @@ -38,13 +35,12 @@ exists url = {- Used to download large files, such as the contents of keys. - Uses wget or curl program for its progress bar. (Wget has a better one, - so is preferred.) -} -download :: URLString -> FilePath -> Annex Bool +download :: URLString -> FilePath -> IO Bool download url file = do - showOutput -- make way for program's progress bar - e <- liftIO $ inPath "wget" + e <- inPath "wget" if e then - liftIO $ boolSystem "wget" + boolSystem "wget" [Params "-c -O", File file, File url] else -- Uses the -# progress display, because the normal @@ -52,7 +48,7 @@ download url file = do -- the remainder to download as the whole file, -- and not indicating how much percent was -- downloaded before the resume. - liftIO $ boolSystem "curl" + boolSystem "curl" [Params "-L -C - -# -o", File file, File url] {- Downloads a small file. -} |