summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-10-16 00:04:26 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-10-16 00:04:26 -0400
commit91366c896d9c9cb4519b451a64ed4d1e0ff52cb3 (patch)
treef9c7073002f68f1b53ba62890794474301a7253a /Utility
parent52c8244219dd90102818282b8b09186f2ce93a0f (diff)
clean Annex stuff out of Utility/
Diffstat (limited to 'Utility')
-rw-r--r--Utility/Ssh.hs67
-rw-r--r--Utility/Url.hs12
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. -}