hub-1.0.0: hub.hs
--
-- >>> Main <<<
--
-- Main driver for the hub tool (see the README for details).
--
-- (c) 2011-2012 Chris Dornan
module Main(main) where
import Control.Monad
import System.IO
import System.Exit
import Text.Printf
import Hub.System
import Hub.FilePaths
import Hub.Directory
import Hub.CommandLine
import Hub.Commands
import qualified Version as V
main :: IO ()
main =
do cl <- commandLine
case cl of
HelpCL _ _ -> return ()
VrsnCL -> return ()
_ -> initDirectory
case cl of
ProgCL hub (prg,as) -> _prog hub prg as
HelpCL err hlp -> _help err hlp
VrsnCL -> _vrsn
DfltCL -> _default
StDfCL hub -> _default_hub $ Just hub
RsDfCL -> _default_hub Nothing
LsCL af qf -> _ls af qf
GetCL -> _get
SetCL hub -> _set hub
UnsetCL -> _unset
NameCL hub -> _name hub
InfoCL hub -> _info hub
LockCL hub -> _lock hub
UnlockCL hub -> _unlock hub
PathCL hub -> _path hub
XmlCL hub -> _xml hub
InitCL hub hn set -> _init hub hn set
CommentCL hub cmt -> _comment hub cmt
CpCL hub hn -> _cp hub hn
MvCL hub hn -> _mv hub hn
RmCL hub -> _rm hub
SwapCL hub hn -> _swap hub hn
GcCL -> _gc
ListCL hub -> _list hub
CheckCL hub -> _check hub
SaveCL hub -> _save hub
LoadCL hn -> _load hn
VerifyCL hub sf -> _verify hub sf
InstallCL hub pkns -> _install hub pkns
EraseCL hub pkns ef -> _erase hub pkns ef
_help :: Bool -> String -> IO ()
_help False hlp = putStr hlp
_help True hlp = hPutStrLn stderr hlp >> exitWith (ExitFailure 1)
_vrsn :: IO ()
_vrsn =
do putStr $ printf "hub %s\n" V.version
ex <- fileExists sysVersion
when ex $
readAFile sysVersion >>= putStr