diff options
author | Joey Hess <joeyh@joeyh.name> | 2014-12-29 15:16:40 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2014-12-29 15:16:40 -0400 |
commit | cdb6196ab7a6b7d9602512fcc745e9dab61a9ce8 (patch) | |
tree | 9ae74c330aaaf54f64a89c01fb1b449ad9682370 /Command | |
parent | dd7bf0eedebe4f01d702f6450a5c0b5180775c07 (diff) |
setpresentkey: A new plumbing-level command.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/SetPresentKey.hs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Command/SetPresentKey.hs b/Command/SetPresentKey.hs new file mode 100644 index 000000000..94b442e22 --- /dev/null +++ b/Command/SetPresentKey.hs @@ -0,0 +1,36 @@ +{- git-annex command + - + - Copyright 2014 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Command.SetPresentKey where + +import Common.Annex +import Command +import qualified Annex +import Logs.Location +import Logs.Presence.Pure +import Types.Key + +cmd :: [Command] +cmd = [noCommit $ command "setpresentkey" (paramPair paramKey "[1|0]") seek + SectionPlumbing "change records of where key is present"] + +seek :: CommandSeek +seek = withWords start + +start :: [String] -> CommandStart +start (ks:us:vs:[]) = do + showStart' "setpresentkey" k Nothing + next $ perform k (toUUID us) status + where + k = fromMaybe (error "bad key") (file2key ks) + status = fromMaybe (error "bad value") (parseStatus vs) +start _ = error "Wrong number of parameters" + +perform :: Key -> UUID -> LogStatus -> CommandPerform +perform k u status = next $ do + logChange k u status + return True |