aboutsummaryrefslogtreecommitdiff
path: root/CmdLine/GitAnnexShell.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2018-03-07 15:15:23 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2018-03-07 15:38:01 -0400
commit9f4771eb3c3f29ea38bbfc70eaf78198ca948840 (patch)
tree254a904d70a593da0c4bcfc4d948d4f9a07d19c2 /CmdLine/GitAnnexShell.hs
parentb7aa7445a5d97d6f43fbea26ae2ee1773744ebc9 (diff)
implemented git-annex-shell p2pstdio
Not yet used by git-annex, but this will allow faster transfers etc than using individual ssh connections and rsync. Not called git-annex-shell p2p, because git-annex p2p does something else and I don't want two subcommands with the same name between the two for sanity reasons. This commit was sponsored by Øyvind Andersen Holm.
Diffstat (limited to 'CmdLine/GitAnnexShell.hs')
-rw-r--r--CmdLine/GitAnnexShell.hs17
1 files changed, 14 insertions, 3 deletions
diff --git a/CmdLine/GitAnnexShell.hs b/CmdLine/GitAnnexShell.hs
index 154bfeb38..3dc31e602 100644
--- a/CmdLine/GitAnnexShell.hs
+++ b/CmdLine/GitAnnexShell.hs
@@ -1,6 +1,6 @@
{- git-annex-shell main program
-
- - Copyright 2010-2012 Joey Hess <id@joeyh.name>
+ - Copyright 2010-2018 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@@ -28,6 +28,7 @@ import qualified Command.TransferInfo
import qualified Command.Commit
import qualified Command.NotifyChanges
import qualified Command.GCryptSetup
+import qualified Command.P2PStdIO
cmds_readonly :: [Command]
cmds_readonly =
@@ -47,8 +48,18 @@ cmds_notreadonly =
, Command.GCryptSetup.cmd
]
+-- Commands that can operate readonly or not; they use checkNotReadOnly.
+cmds_readonly_capable :: [Command]
+cmds_readonly_capable =
+ [ gitAnnexShellCheck Command.P2PStdIO.cmd
+ ]
+
+cmds_readonly_safe :: [Command]
+cmds_readonly_safe = cmds_readonly ++ cmds_readonly_capable
+
cmds :: [Command]
-cmds = map (adddirparam . noMessages) (cmds_readonly ++ cmds_notreadonly)
+cmds = map (adddirparam . noMessages)
+ (cmds_readonly ++ cmds_notreadonly ++ cmds_readonly_capable)
where
adddirparam c = c { cmdparamdesc = "DIRECTORY " ++ cmdparamdesc c }
@@ -94,7 +105,7 @@ builtins = map cmdname cmds
builtin :: String -> String -> [String] -> IO ()
builtin cmd dir params = do
- unless (cmd `elem` map cmdname cmds_readonly)
+ unless (cmd `elem` map cmdname cmds_readonly_safe)
checkNotReadOnly
checkDirectory $ Just dir
let (params', fieldparams, opts) = partitionParams params