module Parser ( wrapper ) where
import Data.Semigroup ((<>))
import Data.Version as V
import Options.Applicative
import qualified Paths_perceptual_hash as P
phashVersion :: V.Version
phashVersion = P.version
debug :: Parser Bool
debug =
switch
(long "debug"
<> help "Show debug output")
targets :: Parser ([FilePath], Bool)
targets = (,)
<$> some (argument str
(metavar "DIRECTORY"
<> help "Directory to include"))
<*> debug
wrapper :: ParserInfo ([FilePath], Bool)
wrapper = info (helper <* versionInfo <*> targets)
(fullDesc
<> progDesc "A command-line tool to detect duplicate images."
<> header "phash - find duplicates using perceptual hashes")
versionInfo :: Parser (a -> a)
versionInfo = infoOption ("phash version: " ++ V.showVersion phashVersion) (short 'V' <> long "version" <> help "Show version")