diff options
author | Joey Hess <joey@kitenet.net> | 2010-12-31 13:39:30 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-12-31 13:39:43 -0400 |
commit | 60df4e5728b8af804f06c39ef3b897af12247ceb (patch) | |
tree | 682d1443d4d8e27f63f87ee9e0ae2f5629538385 /Command/RecvKey.hs | |
parent | f38aa3e83abb251a88362dbaf6e8fbddd477fa53 (diff) |
git-annex-shell is complete
still not used
Diffstat (limited to 'Command/RecvKey.hs')
-rw-r--r-- | Command/RecvKey.hs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Command/RecvKey.hs b/Command/RecvKey.hs new file mode 100644 index 000000000..3232010d4 --- /dev/null +++ b/Command/RecvKey.hs @@ -0,0 +1,38 @@ +{- git-annex command + - + - Copyright 2010 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.RecvKey where + +import Control.Monad (when) +import Control.Monad.State (liftIO) +import System.Exit + +import Command +import Types +import Core +import qualified Backend +import RsyncFile + +command :: [Command] +command = [Command "recvkey" paramKey seek + "runs rsync in server mode to receive content"] + +seek :: [CommandSeek] +seek = [withKeys start] + +start :: CommandStartString +start keyname = do + backends <- Backend.list + let key = genKey (head backends) keyname + present <- inAnnex key + when present $ + error "key is already present in annex" + + ok <- getViaTmp key (liftIO . rsyncServerReceive) + if ok + then return Nothing + else liftIO exitFailure |