[cli] list routes sorted by path

parent 71f84c4c
Pipeline #7554 passed with stages
in 55 minutes and 36 seconds
...@@ -13,11 +13,13 @@ import CLI.Types ...@@ -13,11 +13,13 @@ import CLI.Types
import Data.Aeson.Encode.Pretty import Data.Aeson.Encode.Pretty
import Data.ByteString qualified as B import Data.ByteString qualified as B
import Data.ByteString.Lazy qualified as BL import Data.ByteString.Lazy qualified as BL
import Data.Text.IO qualified as T
import Gargantext.API.Routes.Named import Gargantext.API.Routes.Named
import Gargantext.Prelude
import Options.Applicative import Options.Applicative
import Prelude
import Servant.API import Servant.API
import Servant.API.Routes import Servant.API.Routes
import Servant.API.Routes.Internal.Route (routePath)
import Servant.API.WebSocket qualified as WS (WebSocketPending) import Servant.API.WebSocket qualified as WS (WebSocketPending)
import Servant.Auth qualified as Servant import Servant.Auth qualified as Servant
...@@ -52,6 +54,10 @@ instance HasRoutes Raw where ...@@ -52,6 +54,10 @@ instance HasRoutes Raw where
routesCLI :: CLIRoutes -> IO () routesCLI :: CLIRoutes -> IO ()
routesCLI = \case routesCLI = \case
CLIR_list CLIR_list
-> printRoutes @(NamedRoutes API) -> do
let routes = getRoutes @(NamedRoutes API)
let cmpFunc r = renderPath (r ^. routePath)
let sortedRoutes = sortBy (\a b -> compare (cmpFunc a) (cmpFunc b)) routes
traverse_ (T.putStrLn . renderRoute) sortedRoutes
(CLIR_export filePath) (CLIR_export filePath)
-> B.writeFile filePath . BL.toStrict $ encodePretty (getRoutes @(NamedRoutes API)) -> B.writeFile filePath . BL.toStrict $ encodePretty (getRoutes @(NamedRoutes API))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment