aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2019-09-01 00:27:39 +0200
committerIgor Pashev <pashev.igor@gmail.com>2019-09-01 00:27:39 +0200
commit768996a0c92dae7d6df9f0e8dca7dccffa986488 (patch)
treef5c825c706ba3155e476aa99beec2d2fba1652a0
parent1ff6303a5a08504a938fd845505323f6a9771977 (diff)
downloadfrotate.hs-768996a0c92dae7d6df9f0e8dca7dccffa986488.tar.gz
Keep the oldest days so that they can move to other groups
-rw-r--r--README.md26
-rw-r--r--src/Main.hs8
2 files changed, 22 insertions, 12 deletions
diff --git a/README.md b/README.md
index f33d831..4174d66 100644
--- a/README.md
+++ b/README.md
@@ -49,28 +49,36 @@ Different modes with the same days:
```
$ frotate --base 2 2019-08-31 2019-08-30 2019-08-29 2019-08-28 2019-08-27 2019-08-26 2019-08-25 2019-08-24
2019-08-31
-2019-08-30 2019-08-29
-2019-08-28 2019-08-27 2019-08-26 2019-08-25
+2019-08-29 2019-08-30
+2019-08-25 2019-08-26 2019-08-27 2019-08-28
2019-08-24
$ frotate --keep --base 2 2019-08-31 2019-08-30 2019-08-29 2019-08-28 2019-08-27 2019-08-26 2019-08-25 2019-08-24
-2019-08-31 2019-08-30 2019-08-28 2019-08-24
+2019-08-31 2019-08-29 2019-08-25 2019-08-24
$ frotate --delete --base 2 2019-08-31 2019-08-30 2019-08-29 2019-08-28 2019-08-27 2019-08-26 2019-08-25 2019-08-24
-2019-08-29 2019-08-27 2019-08-26 2019-08-25
+2019-08-30 2019-08-26 2019-08-27 2019-08-28
```
More or less realistic example when we keep some backups and get new ones, but not every day:
```
$ frotate --keep --base 2 2019-09-01 2019-08-31 2019-08-30 2019-08-28 2019-08-24
-2019-09-01 2019-08-31 2019-08-28 2019-08-24
+2019-09-01 2019-08-30 2019-08-28 2019-08-24
-$ frotate --keep --base 2 2019-09-05 2019-09-01 2019-08-31 2019-08-28 2019-08-24
-2019-09-05 2019-09-01 2019-08-28
+$ frotate --keep --base 2 2019-09-05 2019-09-01 2019-08-30 2019-08-28 2019-08-24
+2019-09-05 2019-08-30 2019-08-24
-$ frotate --keep --base 2 2019-09-06 2019-09-05 2019-09-01 2019-08-28
-2019-09-06 2019-09-05 2019-09-01 2019-08-28
+$ frotate --keep --base 2 2019-09-06 2019-09-05 2019-08-30 2019-08-24
+2019-09-06 2019-09-05 2019-08-24
+$ frotate --keep --base 2 2019-09-07 2019-09-06 2019-09-05 2019-08-24
+2019-09-07 2019-09-05 2019-08-24
+
+$ frotate --keep --base 2 2019-09-08 2019-09-07 2019-09-06 2019-08-24
+2019-09-08 2019-09-06 2019-08-24
+
+$ frotate --keep --base 2 2019-09-09 2019-09-08 2019-09-06 2019-08-24
+2019-09-09 2019-09-08 2019-09-06 2019-08-24
```
diff --git a/src/Main.hs b/src/Main.hs
index 0ab3259..0f66daa 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -60,6 +60,8 @@ main = do
opts <- execParser $ info (parseOptions <**> helper) fullDesc
let groups = partitionDays (\n -> floor (base opts ^ (n - 1))) (days opts)
case mode opts of
- Just Keep -> putStrLn $ unwords . map show . concatMap (take 1) $ groups
- Just Delete -> putStrLn $ unwords . map show . concatMap (drop 1) $ groups
- Nothing -> mapM_ (hPutStrLn stderr . unwords . map show) groups
+ Just Keep ->
+ putStrLn $ unwords . map show . concatMap (take 1 . reverse) $ groups
+ Just Delete ->
+ putStrLn $ unwords . map show . concatMap (drop 1 . reverse) $ groups
+ Nothing -> mapM_ (hPutStrLn stderr . unwords . map show . reverse) groups