addurl --fast: Verifies that the url can be downloaded (only getting its head), and records the size in the key.
This commit is contained in:
parent
9030f68452
commit
17fed709c8
3 changed files with 14 additions and 4 deletions
|
@ -24,5 +24,9 @@ backend = Backend {
|
||||||
fsckKey = Nothing
|
fsckKey = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
fromUrl :: String -> Key
|
fromUrl :: String -> Maybe Integer -> Key
|
||||||
fromUrl url = stubKey { keyName = url, keyBackendName = "URL" }
|
fromUrl url size = stubKey
|
||||||
|
{ keyName = url
|
||||||
|
, keyBackendName = "URL"
|
||||||
|
, keySize = size
|
||||||
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import qualified Backend
|
||||||
import qualified Command.Add
|
import qualified Command.Add
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
import qualified Backend.URL
|
import qualified Backend.URL
|
||||||
|
import qualified Utility.Url as Url
|
||||||
import Annex.Content
|
import Annex.Content
|
||||||
import Logs.Web
|
import Logs.Web
|
||||||
import qualified Option
|
import qualified Option
|
||||||
|
@ -55,7 +56,7 @@ perform url file = ifAnnexed file addurl geturl
|
||||||
download :: String -> FilePath -> CommandPerform
|
download :: String -> FilePath -> CommandPerform
|
||||||
download url file = do
|
download url file = do
|
||||||
showAction $ "downloading " ++ url ++ " "
|
showAction $ "downloading " ++ url ++ " "
|
||||||
let dummykey = Backend.URL.fromUrl url
|
let dummykey = Backend.URL.fromUrl url Nothing
|
||||||
tmp <- fromRepo $ gitAnnexTmpLocation dummykey
|
tmp <- fromRepo $ gitAnnexTmpLocation dummykey
|
||||||
liftIO $ createDirectoryIfMissing True (parentDir tmp)
|
liftIO $ createDirectoryIfMissing True (parentDir tmp)
|
||||||
stopUnless (downloadUrl [url] tmp) $ do
|
stopUnless (downloadUrl [url] tmp) $ do
|
||||||
|
@ -70,7 +71,10 @@ download url file = do
|
||||||
|
|
||||||
nodownload :: String -> FilePath -> CommandPerform
|
nodownload :: String -> FilePath -> CommandPerform
|
||||||
nodownload url file = do
|
nodownload url file = do
|
||||||
let key = Backend.URL.fromUrl url
|
(exists, size) <- liftIO $ Url.exists url
|
||||||
|
unless exists $
|
||||||
|
error $ "unable to access url: " ++ url
|
||||||
|
let key = Backend.URL.fromUrl url size
|
||||||
setUrlPresent key url
|
setUrlPresent key url
|
||||||
next $ Command.Add.cleanup file key False
|
next $ Command.Add.cleanup file key False
|
||||||
|
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -20,6 +20,8 @@ git-annex (3.20120124) UNRELEASED; urgency=low
|
||||||
* Fix teardown of stale cached ssh connections.
|
* Fix teardown of stale cached ssh connections.
|
||||||
* When checking that an url has a key, verify that the Content-Length,
|
* When checking that an url has a key, verify that the Content-Length,
|
||||||
if available, matches the size of the key.
|
if available, matches the size of the key.
|
||||||
|
* addurl --fast: Verifies that the url can be downloaded (only getting
|
||||||
|
its head), and records the size in the key.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Tue, 24 Jan 2012 16:21:55 -0400
|
-- Joey Hess <joeyh@debian.org> Tue, 24 Jan 2012 16:21:55 -0400
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue