From 7cfda1d650a71d777cca27db2c387c636154c968 Mon Sep 17 00:00:00 2001 From: Maximilian Tagher Date: Thu, 30 Jul 2020 14:26:22 -0400 Subject: [PATCH] Fix add-handler for new routes file path https://github.com/yesodweb/yesod/pull/1686 recommended `.yesodroutes` as the file extension for the routes file, and https://github.com/yesodweb/yesod-scaffold/pull/203 added that to the scaffolding. But yesod-bin assumes the file is just named `routes`. This PR will check if the old path exists and use that, and if not use the new path. I tested this on the yesod-scaffold repo with both the old and new filename --- yesod-bin/AddHandler.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/yesod-bin/AddHandler.hs b/yesod-bin/AddHandler.hs index f36d4f2a..52d57cdd 100644 --- a/yesod-bin/AddHandler.hs +++ b/yesod-bin/AddHandler.hs @@ -84,13 +84,22 @@ addHandlerInteractive = do methods <- getLine addHandlerFiles cabal routePair pattern methods +getRoutesFilePath :: IO FilePath +getRoutesFilePath = do + let oldPath = "config/routes" + oldExists <- doesFileExist oldPath + pure $ if oldExists + then oldPath + else "config/routes.yesodroutes" + addHandlerFiles :: FilePath -> (String, FilePath) -> String -> String -> IO () addHandlerFiles cabal (name, handlerFile) pattern methods = do src <- getSrcDir cabal let applicationFile = concat [src, "/Application.hs"] modify applicationFile $ fixApp name modify cabal $ fixCabal name - modify "config/routes" $ fixRoutes name pattern methods + routesPath <- getRoutesFilePath + modify routesPath $ fixRoutes name pattern methods writeFile handlerFile $ mkHandler name pattern methods specExists <- doesFileExist specFile unless specExists $