module Main where import Data.Map (mapKeysWith) import System.Environment (getArgs) import Version (versionStrip) import Yeganesh (Options, deprecate, inFileName, merge, profile, outFileName, parseOptions, readPossiblyNonExistent, stripNewline) runWithOptions :: Options -> IO () runWithOptions opts = do inFile <- inFileName (profile opts) outFile <- outFileName (profile opts) (t, cmd) <- readPossiblyNonExistent inFile writeFile outFile (show (t, mapKeysWith merge stripNewline cmd)) deprecate inFile (profile opts) introText :: String introText = unlines $ [ versionStrip, "Usage: yeganesh-strip [-p profile]", "The other options described below are accepted, but ignored.", "Profiles are stored in the XDG data home for yeganesh."] main :: IO () main = getArgs >>= either putStrLn runWithOptions . parseOptions introText versionStrip