packages feed

hsimport-0.1: HsImport/Args.hs

{-# LANGUAGE DeriveDataTypeable #-}

module HsImport.Args 
   ( HsImportArgs(..)
   , hsImportArgs
   ) where

import System.Console.CmdArgs


data HsImportArgs = HsImportArgs 
   { moduleName    :: String
   , symbolName    :: String
   , inputSrcFile  :: FilePath
   , outputSrcFile :: FilePath
   } deriving (Data, Typeable, Show, Eq)


hsImportArgs :: IO HsImportArgs
hsImportArgs = cmdArgs $ HsImportArgs 
   { moduleName    = def &= help "The module to import"
   , symbolName    = def &= help "The symbol to import, if empty, the entire module is imported"
   , outputSrcFile = def &= help "Save modified source file to file, if empty, the source file is modified inplace" &= typFile
   , inputSrcFile  = def &= args &= typ "SOURCEFILE"
   }
   &= program "hsimport"
   &= summary summaryInfo
   &= help "A command line program for extending the import list of a Haskell source file."
   &= helpArg [explicit, name "help", name "h"]
   &= versionArg [explicit, name "version", name "v", summary versionInfo]
   where
      versionInfo = "hsimport version 0.1"
      summaryInfo = ""