-- Copyright (C) 2003 David Roundy
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; see the file COPYING.  If not, write to
-- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA.

module Darcs.UI.TheCommands ( commandControlList ) where


import Darcs.UI.Commands.Add ( add )
import Darcs.UI.Commands.Amend ( amend, amendrecord )
import Darcs.UI.Commands.Annotate ( annotate )
import Darcs.UI.Commands.Apply ( apply )
import Darcs.UI.Commands.Clone ( clone, get, put )
import Darcs.UI.Commands.Convert ( convert )
import Darcs.UI.Commands.Diff ( diffCommand )
import Darcs.UI.Commands.Dist ( dist )
import Darcs.UI.Commands.GZCRCs ( gzcrcs )
import Darcs.UI.Commands.Init ( initialize )
import Darcs.UI.Commands.Log ( log, changes )
import Darcs.UI.Commands.Show ( showCommand )
import Darcs.UI.Commands.MarkConflicts ( markconflicts )
import Darcs.UI.Commands.Move ( move, mv )
import Darcs.UI.Commands.Optimize ( optimize )
import Darcs.UI.Commands.Pull ( pull, fetch )
import Darcs.UI.Commands.Push ( push )
import Darcs.UI.Commands.Rebase ( rebase )
import Darcs.UI.Commands.Record ( record, commit )
import Darcs.UI.Commands.Remove ( remove, rm, unadd )
import Darcs.UI.Commands.Repair ( repair, check )
import Darcs.UI.Commands.Replace ( replace )
import Darcs.UI.Commands.Revert ( revert, clean )
import Darcs.UI.Commands.Rollback ( rollback )
import Darcs.UI.Commands.Send ( send )
import Darcs.UI.Commands.SetPref ( setpref )
import Darcs.UI.Commands.Tag ( tag )
import Darcs.UI.Commands.Test ( test )
import Darcs.UI.Commands.TransferMode ( transferMode )
import Darcs.UI.Commands.Unrecord ( unrecord, unpull, obliterate )
import Darcs.UI.Commands.Unrevert ( unrevert )
import Darcs.UI.Commands.WhatsNew ( whatsnew, status )
import Darcs.UI.Commands ( CommandControl, normalCommand, hiddenCommand, commandGroup )

-- | The commands that darcs knows about (e.g. whatsnew, record),
--   organized into thematic groups.  Note that hidden commands
--   are also listed here.
commandControlList :: [CommandControl]
commandControlList :: [CommandControl]
commandControlList =
    [ String -> CommandControl
commandGroup String
"Most used/starting out:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
initialize
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
add
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
whatsnew, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
status
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
record, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
commit
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
clone, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
get, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
put
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
pull
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
push
    , String -> CommandControl
commandGroup String
"Preparing patches before recording:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
move, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
mv
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
remove, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
unadd, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
rm
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
replace
    , String -> CommandControl
commandGroup String
"Querying the repository:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
log, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
changes
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
annotate
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
diffCommand
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
showCommand
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
test
    , String -> CommandControl
commandGroup String
"Undoing and correcting:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
revert
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
unrevert
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
amend, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
amendrecord
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
rebase
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
rollback
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
unrecord
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
obliterate, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
unpull
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
clean
    , String -> CommandControl
commandGroup String
"Direct modification of the repository:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
tag
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
setpref
    , String -> CommandControl
commandGroup String
"Exchanging patches by e-mail:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
send
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
apply
    , String -> CommandControl
commandGroup String
"Other commands:"
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
optimize
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
dist
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
markconflicts
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
repair, DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
check
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
convert
    , DarcsCommand -> CommandControl
normalCommand DarcsCommand
fetch
    , DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
gzcrcs
    , DarcsCommand -> CommandControl
hiddenCommand DarcsCommand
transferMode
    ]