d372553540
Added rclone special remote, which can be used without needing to install the git-annex-remote-rclone program. This needs a new version of rclone, which supports "rclone gitannex". This is implemented as a variant of an external special remote, that runs "rclone gitannex" instead of the usual git-annex-remote- command. Parameterized Remote.External to support that. Sponsored-by: Luke T. Shumaker on Patreon
31 lines
891 B
Haskell
31 lines
891 B
Haskell
{- Rclone special remote, using "rclone gitannex"
|
|
-
|
|
- Copyright 2024 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU AGPL version 3 or higher.
|
|
-}
|
|
|
|
module Remote.Rclone (remote) where
|
|
|
|
import Types
|
|
import Types.Remote
|
|
import Remote.Helper.Special
|
|
import Remote.Helper.ExportImport
|
|
import Utility.SafeCommand
|
|
import qualified Remote.External as External
|
|
import Remote.External.Types
|
|
|
|
remote :: RemoteType
|
|
remote = specialRemoteType $ RemoteType
|
|
{ typename = "rclone"
|
|
, enumerate = const (findSpecialRemotes "rclone")
|
|
, generate = External.gen remote p
|
|
, configParser = External.remoteConfigParser p
|
|
, setup = External.externalSetup p setgitconfig
|
|
, exportSupported = External.checkExportSupported p
|
|
, importSupported = importUnsupported
|
|
, thirdPartyPopulated = False
|
|
}
|
|
where
|
|
p = Just $ ExternalCommand "rclone" [Param "gitannex"]
|
|
setgitconfig = Just ("rclone", "true")
|