packages feed

neil-0.8: src/Arguments.hs

{-# LANGUAGE DeriveDataTypeable #-}
{-# OPTIONS_GHC -fno-warn-missing-fields #-}

module Arguments where

import System.Console.CmdArgs

data Arguments
    -- darcs stuff
    = Whatsnew {repo :: FilePath, delete_locks :: Bool, local :: Bool, look_for_adds :: Bool, ssh :: Bool}
    | Pull {repo :: FilePath, delete_locks :: Bool}
    | Push {repo :: FilePath, ssh :: Bool}
    | Send {repo :: FilePath, patch :: FilePath}
    | Apply {patch :: FilePath}
    | Tag
    | Docs {username :: String, host :: String}

    | Travis {wait :: Double}
 
    -- cabal stuff
    | Sdist
    | Check
    | Test {install :: Bool}
      deriving (Data,Typeable,Show)

arguments = cmdArgsMode $ modes
    [Whatsnew {repo = "." &= typDir &= help "Repo to use"
              ,delete_locks = False &= help "Delete lock files"
              ,local = False &= help "Only check for local changes, no network required"
              ,look_for_adds = False &= name "l" &= help "Look for files to add"
              ,ssh = False &= help "SSH connections only, for if the http is down"}
              &= help "See what has changed (local and remote changes)"
    ,Pull {}
          &= help "Pull from the default locations"
    ,Push {}
          &= help "Push to the calculated SSH location"
    ,Send {patch="patches.tar" &= typFile &= help "Location for patches"}
          &= help "Send patches as a tarball"
    ,Apply {}
           &= help "Apply a patch tarball"
    ,Sdist {}
          &= help "Create a cabal sdist with extra checks"
    ,Tag {} &= help "Tag the repo, after a release"
    ,Check
    ,Docs {username = "NeilMitchell", host = "https://hackage.haskell.org"}
    ,Travis {wait = 0 &= help "Time to wait after each wget request"}
    ,Test {install = False &= help "Install after building"}
    ]
    &= summary "Neil's utility tool"