diff options
Diffstat (limited to 'Backend/Url.hs')
-rw-r--r-- | Backend/Url.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Backend/Url.hs b/Backend/Url.hs new file mode 100644 index 000000000..e4ba58e6d --- /dev/null +++ b/Backend/Url.hs @@ -0,0 +1,35 @@ +{- git-annex "url" backend + - -} + +module Backend.Url (backend) where + +import Control.Monad.State +import System.Cmd +import IO +import BackendTypes + +backend = Backend { + name = "url", + getKey = keyValue, + storeFileKey = dummyStore, + retrieveKeyFile = downloadUrl, + removeKey = dummyRemove +} + +-- cannot generate url from filename +keyValue :: FilePath -> Annex (Maybe Key) +keyValue file = return Nothing + +-- cannot change url contents +dummyStore :: FilePath -> Key -> Annex Bool +dummyStore file url = return False +dummyRemove :: Key -> Annex Bool +dummyRemove url = return False + +downloadUrl :: Key -> FilePath -> Annex Bool +downloadUrl url file = do + liftIO $ putStrLn $ "download: " ++ (show url) + result <- liftIO $ try $ rawSystem "curl" ["-#", "-o", file, (show url)] + case (result) of + Left _ -> return False + Right _ -> return True |