diff --git a/CmdLine.hs b/CmdLine.hs index 684ebf979a..861a31be97 100644 --- a/CmdLine.hs +++ b/CmdLine.hs @@ -28,8 +28,8 @@ import Messages import UUID {- Runs the passed command line. -} -dispatch :: Git.Repo -> [String] -> [Command] -> [Option] -> String -> IO () -dispatch gitrepo args cmds options header = do +dispatch :: [String] -> [Command] -> [Option] -> String -> Git.Repo -> IO () +dispatch args cmds options header gitrepo = do setupConsole state <- Annex.new gitrepo allBackends (actions, state') <- Annex.run state $ parseCmd args header cmds options diff --git a/GitAnnex.hs b/GitAnnex.hs index b22313d3c5..103ee262f2 100644 --- a/GitAnnex.hs +++ b/GitAnnex.hs @@ -113,6 +113,4 @@ header :: String header = "Usage: git-annex command [option ..]" run :: [String] -> IO () -run args = do - gitrepo <- Git.repoFromCwd - dispatch gitrepo args cmds options header +run args = dispatch args cmds options header =<< Git.repoFromCwd diff --git a/git-annex-shell.hs b/git-annex-shell.hs index 940db71c34..55f34e1027 100644 --- a/git-annex-shell.hs +++ b/git-annex-shell.hs @@ -58,10 +58,9 @@ builtins :: [String] builtins = map cmdname cmds builtin :: String -> String -> [String] -> IO () -builtin cmd dir params = do - dir' <- Git.repoAbsPath dir - gitrepo <- Git.repoFromAbsPath dir' - dispatch gitrepo (cmd:(filterparams params)) cmds commonOptions header +builtin cmd dir params = + Git.repoAbsPath dir >>= Git.repoFromAbsPath >>= + dispatch (cmd:(filterparams params)) cmds commonOptions header external :: [String] -> IO () external params = do