rename http special remote to httpalso
"http" was too generic and easy to confuse with web. The new name makes clear it's used in addition to some other remote. And other protocols can use the same naming scheme.
This commit is contained in:
parent
a47787934a
commit
8656afd3e1
10 changed files with 33 additions and 32 deletions
|
@ -1,7 +1,7 @@
|
||||||
git-annex (8.20200815) UNRELEASED; urgency=medium
|
git-annex (8.20200815) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
* Added http special remote, which is useful for accessing other remotes
|
* Added httpalso special remote, which is useful for accessing
|
||||||
that publish content stored in them via http/https.
|
content stored on other remotes that is published by http.
|
||||||
* The external special remote protocol got an ASYNC extension.
|
* The external special remote protocol got an ASYNC extension.
|
||||||
This can be used by an external special remote to let a single process
|
This can be used by an external special remote to let a single process
|
||||||
perform concurrent actions, rather than multiple processes being
|
perform concurrent actions, rather than multiple processes being
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{- Http remote (readonly).
|
{- HttpAlso remote (readonly).
|
||||||
-
|
-
|
||||||
- Copyright 2020 Joey Hess <id@joeyh.name>
|
- Copyright 2020 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU AGPL version 3 or higher.
|
- Licensed under the GNU AGPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
|
||||||
module Remote.Http (remote) where
|
module Remote.HttpAlso (remote) where
|
||||||
|
|
||||||
import Annex.Common
|
import Annex.Common
|
||||||
import Types.Remote
|
import Types.Remote
|
||||||
|
@ -29,14 +29,14 @@ import Control.Concurrent.STM
|
||||||
|
|
||||||
remote :: RemoteType
|
remote :: RemoteType
|
||||||
remote = RemoteType
|
remote = RemoteType
|
||||||
{ typename = "http"
|
{ typename = "httpalso"
|
||||||
, enumerate = const (findSpecialRemotes "http")
|
, enumerate = const (findSpecialRemotes "httpalso")
|
||||||
, generate = gen
|
, generate = gen
|
||||||
, configParser = mkRemoteConfigParser
|
, configParser = mkRemoteConfigParser
|
||||||
[ optionalStringParser urlField
|
[ optionalStringParser urlField
|
||||||
(FieldDesc "(required) url to the remote content")
|
(FieldDesc "(required) url to the remote content")
|
||||||
]
|
]
|
||||||
, setup = httpSetup
|
, setup = httpAlsoSetup
|
||||||
, exportSupported = exportUnsupported
|
, exportSupported = exportUnsupported
|
||||||
, importSupported = importUnsupported
|
, importSupported = importUnsupported
|
||||||
}
|
}
|
||||||
|
@ -86,15 +86,15 @@ gen r u rc gc rs = do
|
||||||
, remoteStateHandle = rs
|
, remoteStateHandle = rs
|
||||||
}
|
}
|
||||||
|
|
||||||
httpSetup :: SetupStage -> Maybe UUID -> Maybe CredPair -> RemoteConfig -> RemoteGitConfig -> Annex (RemoteConfig, UUID)
|
httpAlsoSetup :: SetupStage -> Maybe UUID -> Maybe CredPair -> RemoteConfig -> RemoteGitConfig -> Annex (RemoteConfig, UUID)
|
||||||
httpSetup _ Nothing _ _ _ =
|
httpAlsoSetup _ Nothing _ _ _ =
|
||||||
error "Must use --sameas when initializing a http remote."
|
error "Must use --sameas when initializing a httpalso remote."
|
||||||
httpSetup _ (Just u) _ c gc = do
|
httpAlsoSetup _ (Just u) _ c gc = do
|
||||||
_url <- maybe (giveup "Specify url=")
|
_url <- maybe (giveup "Specify url=")
|
||||||
(return . fromProposedAccepted)
|
(return . fromProposedAccepted)
|
||||||
(M.lookup urlField c)
|
(M.lookup urlField c)
|
||||||
(c', _encsetup) <- encryptionSetup c gc
|
(c', _encsetup) <- encryptionSetup c gc
|
||||||
gitConfigSpecialRemote u c' [("http", "true")]
|
gitConfigSpecialRemote u c' [("httpalso", "true")]
|
||||||
return (c', u)
|
return (c', u)
|
||||||
|
|
||||||
downloadKey :: Maybe URLString -> LearnedLayout -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Verification
|
downloadKey :: Maybe URLString -> LearnedLayout -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Verification
|
||||||
|
@ -106,10 +106,10 @@ downloadKey baseurl ll key _af dest p = do
|
||||||
go url = Url.withUrlOptions $ downloadUrl key p [url] dest
|
go url = Url.withUrlOptions $ downloadUrl key p [url] dest
|
||||||
|
|
||||||
uploadKey :: Key -> AssociatedFile -> MeterUpdate -> Annex ()
|
uploadKey :: Key -> AssociatedFile -> MeterUpdate -> Annex ()
|
||||||
uploadKey _ _ _ = giveup "upload to http special remote not supported"
|
uploadKey _ _ _ = giveup "upload to httpalso special remote not supported"
|
||||||
|
|
||||||
dropKey :: Key -> Annex ()
|
dropKey :: Key -> Annex ()
|
||||||
dropKey _ = giveup "removal from http special remote not supported"
|
dropKey _ = giveup "removal from httpalso special remote not supported"
|
||||||
|
|
||||||
checkKey :: Maybe URLString -> LearnedLayout -> Remote -> Key -> Annex Bool
|
checkKey :: Maybe URLString -> LearnedLayout -> Remote -> Key -> Annex Bool
|
||||||
checkKey baseurl ll r key = do
|
checkKey baseurl ll r key = do
|
||||||
|
@ -146,7 +146,7 @@ urlAction (Just baseurl) ll key a = liftIO (readTVarIO ll) >>= \case
|
||||||
)
|
)
|
||||||
|
|
||||||
-- cannot normally happen
|
-- cannot normally happen
|
||||||
urlAction Nothing _ _ _ = giveup "no url configured for http special remote"
|
urlAction Nothing _ _ _ = giveup "no url configured for httpalso special remote"
|
||||||
|
|
||||||
-- Different ways that keys can be laid out in the special remote,
|
-- Different ways that keys can be laid out in the special remote,
|
||||||
-- with the more common first.
|
-- with the more common first.
|
|
@ -41,7 +41,7 @@ import qualified Remote.Tahoe
|
||||||
import qualified Remote.Glacier
|
import qualified Remote.Glacier
|
||||||
import qualified Remote.Ddar
|
import qualified Remote.Ddar
|
||||||
import qualified Remote.GitLFS
|
import qualified Remote.GitLFS
|
||||||
import qualified Remote.Http
|
import qualified Remote.HttpAlso
|
||||||
import qualified Remote.Hook
|
import qualified Remote.Hook
|
||||||
import qualified Remote.External
|
import qualified Remote.External
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ remoteTypes = map adjustExportImportRemoteType
|
||||||
, Remote.Glacier.remote
|
, Remote.Glacier.remote
|
||||||
, Remote.Ddar.remote
|
, Remote.Ddar.remote
|
||||||
, Remote.GitLFS.remote
|
, Remote.GitLFS.remote
|
||||||
, Remote.Http.remote
|
, Remote.HttpAlso.remote
|
||||||
, Remote.Hook.remote
|
, Remote.Hook.remote
|
||||||
, Remote.External.remote
|
, Remote.External.remote
|
||||||
]
|
]
|
||||||
|
|
|
@ -1547,9 +1547,9 @@ Remotes are configured using these settings in `.git/config`.
|
||||||
|
|
||||||
It is set to "true" if this is a git-lfs remote.
|
It is set to "true" if this is a git-lfs remote.
|
||||||
|
|
||||||
* `remote.<name>.annex-http`
|
* `remote.<name>.annex-httpalso`
|
||||||
|
|
||||||
Used to identify http special remotes.
|
Used to identify httpalso special remotes.
|
||||||
Normally this is automatically set up by `git annex initremote`.
|
Normally this is automatically set up by `git annex initremote`.
|
||||||
|
|
||||||
* `remote.<name>.annex-externaltype`
|
* `remote.<name>.annex-externaltype`
|
||||||
|
|
|
@ -21,9 +21,10 @@ the git history is not stored in them.
|
||||||
* [[S3]] (Amazon S3, and other compatible services)
|
* [[S3]] (Amazon S3, and other compatible services)
|
||||||
* [[tahoe]]
|
* [[tahoe]]
|
||||||
* [[tor]]
|
* [[tor]]
|
||||||
* [[web]] and [[http]]
|
* [[web]]
|
||||||
* [[webdav]]
|
* [[webdav]]
|
||||||
* [[git]]
|
* [[git]]
|
||||||
|
* [[httpalso]]
|
||||||
* [[xmpp]]
|
* [[xmpp]]
|
||||||
|
|
||||||
The above special remotes are built into git-annex, and can be used
|
The above special remotes are built into git-annex, and can be used
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
This special remote allows downloading annexed objects from other remotes
|
This special remote allows downloading annexed objects from other remotes
|
||||||
that expose their content by http. Not to be confused with the [[web]]
|
that also publish their content by http. Not to be confused with the [[web]]
|
||||||
special remote, this one is only useful in combination with some other
|
special remote, this one is only useful in combination with some other
|
||||||
special remote.
|
special remote.
|
||||||
|
|
||||||
|
@ -7,14 +7,14 @@ Suppose, for example, that you have a [[directory]] special remote. And the
|
||||||
directory happens to be published by a web server. (Or it could be a
|
directory happens to be published by a web server. (Or it could be a
|
||||||
[[rsync]] special remote, or many other kinds.) To let git-annex know that
|
[[rsync]] special remote, or many other kinds.) To let git-annex know that
|
||||||
the content of this special remote can also be accessed over http, set up
|
the content of this special remote can also be accessed over http, set up
|
||||||
a http special remote.
|
a httpalso special remote.
|
||||||
|
|
||||||
git annex initremote --sameas=foo foo-http type=http url=http://example.com/foo
|
git annex initremote --sameas=foo foo-http type=httpalso url=http://example.com/foo
|
||||||
|
|
||||||
The --sameas parameter tells git-annex what other special remote this http
|
The --sameas parameter tells git-annex what other special remote this httpalso
|
||||||
remote is accessing. (See [[tips/multiple_remotes_accessing_the_same_data_store]].)
|
remote is accessing. (See [[tips/multiple_remotes_accessing_the_same_data_store]].)
|
||||||
Since the http remote is read-only, it can only be used to download content
|
Since the httpalso remote is read-only, it can only be used to download
|
||||||
that is stored in that other remote.
|
content that is stored in that other remote.
|
||||||
|
|
||||||
This special remote is compatible with many, but not all, other special
|
This special remote is compatible with many, but not all, other special
|
||||||
remotes. If the special remote does something unusual with the name
|
remotes. If the special remote does something unusual with the name
|
|
@ -10,4 +10,4 @@ it cannot upload to it or remove content.
|
||||||
This special remote uses urls on the web as the source for content.
|
This special remote uses urls on the web as the source for content.
|
||||||
There are several other ways http can be used to download annexed objects,
|
There are several other ways http can be used to download annexed objects,
|
||||||
including a git remote accessible by http, S3 with a `publicurl` configured,
|
including a git remote accessible by http, S3 with a `publicurl` configured,
|
||||||
and the [[http]] special remote.
|
and the [[httpalso]] special remote.
|
||||||
|
|
|
@ -55,7 +55,7 @@ If you find combinations that work, please edit this page to list them.
|
||||||
## known working combinations
|
## known working combinations
|
||||||
|
|
||||||
* directory and rsync
|
* directory and rsync
|
||||||
* http and directory
|
* httpalso and directory
|
||||||
* http and rsync
|
* httpalso and rsync
|
||||||
* http and rclone (any layout except for frankencase)
|
* httpalso and rclone (any layout except for frankencase)
|
||||||
|
|
||||||
|
|
|
@ -16,4 +16,4 @@ access of other special remotes whose data stores are exposed via http.
|
||||||
Call it "http" maybe. (There may be some confusion between this and the web
|
Call it "http" maybe. (There may be some confusion between this and the web
|
||||||
special remote by users looking for such a thing.) --[[Joey]]
|
special remote by users looking for such a thing.) --[[Joey]]
|
||||||
|
|
||||||
> http special remote implemented, [[done]] --[[Joey]]
|
> httpalso special remote implemented, [[done]] --[[Joey]]
|
||||||
|
|
|
@ -980,7 +980,7 @@ Executable git-annex
|
||||||
Remote.Helper.ReadOnly
|
Remote.Helper.ReadOnly
|
||||||
Remote.Helper.Special
|
Remote.Helper.Special
|
||||||
Remote.Helper.Ssh
|
Remote.Helper.Ssh
|
||||||
Remote.Http
|
Remote.HttpAlso
|
||||||
Remote.Hook
|
Remote.Hook
|
||||||
Remote.List
|
Remote.List
|
||||||
Remote.List.Util
|
Remote.List.Util
|
||||||
|
|
Loading…
Reference in a new issue