summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-02-16 16:53:44 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-02-16 16:53:44 -0400
commit990fcad9787ef5fa3b7c039c3ee01ef298b60a27 (patch)
treeb644e53ea09cc35994f6187ccd1434d802a790b6
parentdb6b4cdfcf67cfc3fce5e5f4323aa96a6ebd3e59 (diff)
order commands in usage by name
-rw-r--r--Types/Command.hs9
-rw-r--r--Usage.hs3
2 files changed, 11 insertions, 1 deletions
diff --git a/Types/Command.hs b/Types/Command.hs
index 6dbcf48d1..c5020d112 100644
--- a/Types/Command.hs
+++ b/Types/Command.hs
@@ -7,6 +7,8 @@
module Types.Command where
+import Data.Ord
+
import Types
{- A command runs in these stages.
@@ -46,3 +48,10 @@ data Command = Command
{- CommandCheck functions can be compared using their unique id. -}
instance Eq CommandCheck where
a == b = idCheck a == idCheck b
+
+instance Eq Command where
+ a == b = cmdname a == cmdname b
+
+{- Order commands by name -}
+instance Ord Command where
+ compare = comparing cmdname
diff --git a/Usage.hs b/Usage.hs
index a33f6f311..a1b47252d 100644
--- a/Usage.hs
+++ b/Usage.hs
@@ -7,6 +7,7 @@
module Usage where
+import Common.Annex
import System.Console.GetOpt
import Types.Command
@@ -30,7 +31,7 @@ usage header cmds commonoptions = unlines $
alloptlines = filter (not . null) $
lines $ usageInfo "" $
concatMap cmdoptions cmds ++ commonoptions
- (cmdlines, optlines) = go cmds alloptlines []
+ (cmdlines, optlines) = go (sort cmds) alloptlines []
go [] os ls = (ls, os)
go (c:cs) os ls = go cs os' (ls++(l:o))
where