summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-04-05 15:02:55 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-04-05 15:02:55 -0400
commitcc21a060c44c6af6b68345e5d7a91412df237f13 (patch)
tree5d6c800fc5d16e9295624a3d09a7c9306ebb2d9b
parent0405744d445b2dc5d3d2ce042e36735e6ff2315a (diff)
expire --no-act
-rw-r--r--Command/Expire.hs18
-rw-r--r--doc/git-annex-expire.mdwn5
2 files changed, 17 insertions, 6 deletions
diff --git a/Command/Expire.hs b/Command/Expire.hs
index d01d3a965..f4d1a06e3 100644
--- a/Command/Expire.hs
+++ b/Command/Expire.hs
@@ -21,7 +21,7 @@ import Data.Time.Clock.POSIX
import qualified Data.Map as M
cmd :: [Command]
-cmd = [withOptions [activityOption] $ command "expire" paramExpire seek
+cmd = [withOptions [activityOption, noActOption] $ command "expire" paramExpire seek
SectionMaintenance "expire inactive repositories"]
paramExpire :: String
@@ -30,27 +30,33 @@ paramExpire = (paramRepeating $ paramOptional paramRemote ++ ":" ++ paramTime)
activityOption :: Option
activityOption = fieldOption [] "activity" "Name" "specify activity"
+noActOption :: Option
+noActOption = flagOption [] "no-act" "don't really do anything"
+
seek :: CommandSeek
seek ps = do
expire <- parseExpire ps
wantact <- getOptionField activityOption (pure . parseActivity)
+ noact <- getOptionFlag noActOption
actlog <- lastActivities wantact
u <- getUUID
us <- filter (/= u) . M.keys <$> uuidMap
descs <- uuidMap
- seekActions $ pure $ map (start expire actlog descs) us
+ seekActions $ pure $ map (start expire noact actlog descs) us
-start :: Expire -> Log Activity -> M.Map UUID String -> UUID -> CommandStart
-start (Expire expire) actlog descs u =
+start :: Expire -> Bool -> Log Activity -> M.Map UUID String -> UUID -> CommandStart
+start (Expire expire) noact actlog descs u =
case lastact of
Just ent | notexpired ent -> checktrust (== DeadTrusted) $ do
showStart "unexpire" desc
showNote =<< whenactive
- trustSet u SemiTrusted
+ unless noact $
+ trustSet u SemiTrusted
_ -> checktrust (/= DeadTrusted) $ do
showStart "expire" desc
showNote =<< whenactive
- trustSet u DeadTrusted
+ unless noact $
+ trustSet u DeadTrusted
where
lastact = changed <$> M.lookup u actlog
whenactive = case lastact of
diff --git a/doc/git-annex-expire.mdwn b/doc/git-annex-expire.mdwn
index ff167804a..ce07d7976 100644
--- a/doc/git-annex-expire.mdwn
+++ b/doc/git-annex-expire.mdwn
@@ -30,6 +30,11 @@ expired.
# OPTIONS
+* `--no-act`
+
+ Print out what would be done, but not not actually expite or unexpire
+ any repositories.
+
* `--activity=Name`
Specify the activity that a repository must have performed to avoid being