module Main where import Lib import Console.Options import System.IO main :: IO () main = defaultMain $ do programName "forest-fire" programDescription "Recursively delete CFn dependencies" flagA <- flag $ FlagLong "delete" allArgs <- remainingArguments "FILE" action $ \toParam -> do hSetBuffering stdout LineBuffering -- or even NoBuffering let reallyDelete = toParam flagA let stackName = toParam allArgs case stackName of [s] -> if reallyDelete then actuallyDoTheDelete s else showDeletionPlan s _ -> printUsage printUsage = do putStrLn "\nforest-fire" putStrLn "-----------\n" putStrLn "Usage:\n" putStrLn " forest-fire [--delete]\n" putStrLn "Flags:\n" putStrLn "--delete To actually perform the deletion." putStrLn ""