summaryrefslogtreecommitdiff
path: root/Backend/Url.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Backend/Url.hs')
-rw-r--r--Backend/Url.hs35
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