import System.Environment import System.IO import Options.Applicative import Data.Time data Args = Args { entry :: String -- , time :: Time -- , verbose :: Bool -- , file :: String } runWithOptions :: Args -> IO () runWithOptions opts = putStrLn ( entry opts ++ " saved." ) main :: IO () main = execParser opts >>= runWithOptions where parser = Args <$> argument str (metavar "ENTRY") opts = info parser mempty -- main = getArgs >>= parse -- parse [] = getLine >>= saveActivity "actlog.txt" -- parse ["add"] = getLine >>= saveActivity "actlog.txt" -- parse ["new"] = getLine >>= saveActivity "actlog.txt" -- parse ("add":entry) = saveActivity "actlog.txt" $ unwords entry -- parse ("new":entry) = saveActivity "actlog.txt" $ unwords entry -- parse ("-f": -- saveActivity file act = do -- zoneTime <- fmap show Data.Time.getZonedTime -- appendFile "actlog.txt" (zoneTime ++ "\t" ++ act ++ "\n") -- hPutStrLn stderr ("\"" ++ zoneTime ++ "\t" ++ act ++ "\"" ++ " saved.")