diff options
author | Joey Hess <joey@kitenet.net> | 2010-10-19 01:19:56 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-10-19 01:19:56 -0400 |
commit | c7664588f81fe27b3e88d49523ef3c483ac6481a (patch) | |
tree | e0cc5dc2f24773a5076f973af38f01ef47f29003 /Backend | |
parent | 15986f01d1fd565da151dcb08697e21a94fc9037 (diff) |
use safesystem
Diffstat (limited to 'Backend')
-rw-r--r-- | Backend/File.hs | 7 | ||||
-rw-r--r-- | Backend/URL.hs | 11 |
2 files changed, 9 insertions, 9 deletions
diff --git a/Backend/File.hs b/Backend/File.hs index c97a354d0..8969d7556 100644 --- a/Backend/File.hs +++ b/Backend/File.hs @@ -13,6 +13,7 @@ module Backend.File (backend) where import Control.Monad.State import System.IO import System.Cmd +import System.Cmd.Utils import System.Exit import Control.Exception @@ -92,11 +93,7 @@ copyFromRemote r key file = do then getlocal else getremote where - getlocal = do - res <-rawSystem "cp" ["-a", location, file] - if (res == ExitSuccess) - then return () - else error "cp failed" + getlocal = safeSystem "cp" ["-a", location, file] getremote = error "get via network not yet implemented!" location = annexLocation r key diff --git a/Backend/URL.hs b/Backend/URL.hs index 5c1fd74c9..c9b6ab6df 100644 --- a/Backend/URL.hs +++ b/Backend/URL.hs @@ -3,9 +3,11 @@ module Backend.URL (backend) where +import Control.Exception import Control.Monad.State (liftIO) import Data.String.Utils import System.Cmd +import System.Cmd.Utils import System.Exit import TypeInternals @@ -36,9 +38,10 @@ downloadUrl :: Key -> FilePath -> Annex Bool downloadUrl key file = do showNote "downloading" liftIO $ putStrLn "" -- make way for curl progress bar - result <- liftIO $ rawSystem "curl" ["-#", "-o", file, url] - if (result == ExitSuccess) - then return True - else return False + result <- liftIO $ (try curl::IO (Either SomeException ())) + case result of + Left err -> return False + Right succ -> return True where + curl = safeSystem "curl" ["-#", "-o", file, url] url = join ":" $ drop 1 $ split ":" $ show key |