summaryrefslogtreecommitdiff
path: root/Core.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-14 14:38:29 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-14 14:38:29 -0400
commit90cdc61c7c8d08590e054018c54c542c463be7e9 (patch)
treef3521b9803dd4850170c83c05f4539a08bd9ef1c /Core.hs
parent65e4f9cc73f4800fd4dcb5503f7a428539e1e959 (diff)
refactor
Diffstat (limited to 'Core.hs')
-rw-r--r--Core.hs37
1 files changed, 6 insertions, 31 deletions
diff --git a/Core.hs b/Core.hs
index e3d2c6403..1eb9da687 100644
--- a/Core.hs
+++ b/Core.hs
@@ -5,8 +5,6 @@ module Core where
import System.IO
import System.Directory
import Control.Monad.State (liftIO)
-import Control.Exception
-import CmdLine
import Types
import BackendList
import Locations
@@ -33,35 +31,6 @@ start = do
Git.configGet g' "annex.backends" ""
prepUUID
-{- Processes each param in the list by dispatching the handler function
- - for the user-selection operation mode. Catches exceptions, not stopping
- - if some error out, and propigates an overall error status at the end.
- -
- - This runs in the IO monad, not in the Annex monad. It seems that
- - exceptions can only be caught in the IO monad, not in a stacked monad;
- - or more likely I missed an easy way to do it. So, I have to laboriously
- - thread AnnexState through this function.
- -}
-tryRun :: AnnexState -> Mode -> [String] -> IO ()
-tryRun state mode params = tryRun' state mode 0 0 params
-tryRun' state mode errnum oknum [] = do
- if (errnum > 0)
- then error $ (show errnum) ++ " failed ; " ++ show (oknum) ++ " ok"
- else return ()
-tryRun' state mode errnum oknum (f:fs) = do
- result <- try
- (Annex.run state (dispatch mode f))::IO (Either SomeException ((), AnnexState))
- case (result) of
- Left err -> do
- showErr err
- tryRun' state mode (errnum + 1) oknum fs
- Right (_,state') -> tryRun' state' mode errnum (oknum + 1) fs
-
-{- Exception pretty-printing. -}
-showErr e = do
- hPutStrLn stderr $ "git-annex: " ++ (show e)
- return ()
-
{- Sets up a git repo for git-annex. May be called repeatedly. -}
gitSetup :: Git.Repo -> IO ()
gitSetup repo = do
@@ -85,3 +54,9 @@ gitSetup repo = do
Git.run repo ["add", attributes]
Git.run repo ["commit", "-m", "git-annex setup",
attributes]
+
+{- Checks if a given key is currently present in the annexLocation -}
+inAnnex :: Backend -> Key -> Annex Bool
+inAnnex backend key = do
+ g <- Annex.gitRepo
+ liftIO $ doesFileExist $ annexLocation g backend key