summaryrefslogtreecommitdiff
path: root/Command/Help.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/Help.hs')
-rw-r--r--Command/Help.hs65
1 files changed, 65 insertions, 0 deletions
diff --git a/Command/Help.hs b/Command/Help.hs
new file mode 100644
index 000000000..7998ed796
--- /dev/null
+++ b/Command/Help.hs
@@ -0,0 +1,65 @@
+{- git-annex command
+ -
+ - Copyright 2012 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Command.Help where
+
+import Common.Annex
+import Command
+import qualified Command.Init
+import qualified Command.Add
+import qualified Command.Drop
+import qualified Command.Get
+import qualified Command.Move
+import qualified Command.Copy
+import qualified Command.Sync
+import qualified Command.Whereis
+import qualified Command.Fsck
+
+import System.Console.GetOpt
+
+def :: [Command]
+def = [noCommit $ noRepo startNoRepo $ dontCheck repoExists $
+ command "help" paramNothing seek SectionQuery "display help"]
+
+seek :: CommandSeek
+seek = withWords start
+
+start :: [String] -> CommandStart
+start params = do
+ liftIO $ start' params
+ stop
+
+startNoRepo :: CmdParams -> IO ()
+startNoRepo = start'
+
+start' :: [String] -> IO ()
+start' ["options"] = showCommonOptions
+start' _ = showGeneralHelp
+
+showCommonOptions :: IO ()
+showCommonOptions = putStrLn $ usageInfo "Common options:" gitAnnexOptions
+
+showGeneralHelp :: IO ()
+showGeneralHelp = putStrLn $ unlines
+ [ "The most frequently used git-annex commands are:"
+ , unlines $ map cmdline $ concat
+ [ Command.Init.def
+ , Command.Add.def
+ , Command.Drop.def
+ , Command.Get.def
+ , Command.Move.def
+ , Command.Copy.def
+ , Command.Sync.def
+ , Command.Whereis.def
+ , Command.Fsck.def
+ ]
+ , "Run 'git-annex' for a complete command list."
+ , "Run 'git-annex command --help' for help on a specific command."
+ , "Run `git annex help options' for a list of common options."
+ ]
+ where
+ cmdline c = "\t" ++ cmdname c ++ "\t" ++ cmddesc c