From 72480d98aff91590f11adee8ea0501ba7c490764 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 1 Sep 2019 21:06:45 +0200 Subject: Exit with error if --keep and --delete are missed Still print all days to stderr. This is to prevent misuse when frotate is invoked without --keep or --delete. --- README.md | 4 ++-- src/Main.hs | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4174d66..ace4c08 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ Usage ===== Note that when neither `--keep` nor `--delete` option is given, the utility -prints all intervals with all days in them _to standard error_. In production -you will need to specify `--keep` or `--delete` explicitly. +prints all intervals with all days _to standard error_ and exits with non-zero +code. In production you will need to specify `--keep` or `--delete` explicitly. ``` Usage: frotate ([-k|--keep] | [-d|--delete]) [-b|--base BASE] DAY... diff --git a/src/Main.hs b/src/Main.hs index 0f66daa..09aeb99 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -2,6 +2,7 @@ module Main ( main ) where +import System.Exit (exitFailure) import System.IO (hPutStrLn, stderr) import Data.Time.Calendar (Day) @@ -64,4 +65,6 @@ main = do 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 + Nothing -> do + mapM_ (hPutStrLn stderr . unwords . map show . reverse) groups + exitFailure -- cgit v1.2.3