diff options
-rw-r--r-- | Types/Command.hs | 9 | ||||
-rw-r--r-- | Usage.hs | 3 |
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 @@ -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 |