Skip to content

Commit

Permalink
More cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
psibi committed Aug 7, 2020
1 parent b2917db commit e80e4b8
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 31 deletions.
4 changes: 2 additions & 2 deletions src/Tldr.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ module Tldr
import CMark
import Data.Monoid ((<>))
import Data.Text hiding (cons)
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import GHC.IO.Handle (Handle)
import System.Console.ANSI
import Tldr.Types (ConsoleSetting(..))
import qualified Data.Text as T
import qualified Data.Text.IO as TIO

defConsoleSetting :: ConsoleSetting
defConsoleSetting =
Expand Down
14 changes: 2 additions & 12 deletions src/Tldr/App.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,16 @@ module Tldr.App
( appMain
) where

import Control.Monad
import Data.List (intercalate)
import Data.Semigroup ((<>))
import Tldr.App.Constant
import Data.Version (showVersion)
import System.IO (stdout, stderr, hPutStrLn)
import Options.Applicative
import Paths_tldr (version)
import System.Directory
import System.Environment (getArgs, lookupEnv)
import System.Exit (exitFailure)
import System.FilePath
import System.Process.Typed
import Data.Char (toLower)
import Tldr
import System.Environment (getArgs)
import Tldr.App.Constant (platformDirs)
import Tldr.App.Handler
import Tldr.Types


programOptions :: Parser TldrOpts
programOptions =
(TldrOpts <$> (updateIndexCommand <|> viewPageCommand <|> aboutFlag))
Expand Down Expand Up @@ -78,7 +69,6 @@ tldrParserInfo =
(showVersion version)
(long "version" <> short 'v' <> help "Show version")


appMain :: IO ()
appMain = do
args <- getArgs
Expand Down
51 changes: 34 additions & 17 deletions src/Tldr/App/Handler.hs
Original file line number Diff line number Diff line change
@@ -1,26 +1,43 @@
{-#LANGUAGE RecordWildCards#-}
{-# LANGUAGE BangPatterns #-}

module Tldr.App.Handler where
module Tldr.App.Handler
( handleAboutFlag
, retriveLocale
, checkLocale
, englishViewOptions
, getCheckDirs
, initializeTldrPages
, pageExists
, getPagePath
, updateTldrPages
, handleTldrOpts
) where

import Data.Version (showVersion)
import Control.Monad (unless)
import Data.Char (toLower)
import Data.List (intercalate)
import Data.Semigroup ((<>))
import qualified Data.Set as Set
import Data.Version (showVersion)
import Options.Applicative
import Paths_tldr (version)
import System.Directory
( XdgDirectory(..)
, createDirectoryIfMissing
, doesDirectoryExist
, doesFileExist
, getXdgDirectory
)
import System.Environment (getExecutablePath)
import System.Directory (doesFileExist, XdgDirectory(..), getXdgDirectory, createDirectoryIfMissing, doesDirectoryExist)
import System.FilePath ((</>), (<.>))
import System.Environment (lookupEnv)
import System.Exit (exitFailure)
import System.FilePath ((<.>), (</>))
import System.IO (hPutStrLn, stderr, stdout)
import System.Process.Typed
import Data.Semigroup ((<>))
import Options.Applicative
import Data.List (intercalate)
import System.Environment (getArgs, lookupEnv)
import Tldr
import Tldr.Types
import Tldr.App.Constant
import Control.Monad (unless)
import Data.Char (toLower)
import System.Exit (exitFailure)
import System.IO (stdout, stderr, hPutStrLn)
import Tldr.Types

handleAboutFlag :: IO ()
handleAboutFlag = do
Expand Down Expand Up @@ -50,7 +67,7 @@ handleTldrOpts opts@TldrOpts {..} = do
case tldrAction of
UpdateIndex -> updateTldrPages
About -> handleAboutFlag
vopts@(ViewPage voptions pages) -> do
ViewPage voptions pages -> do
let npage = intercalate "-" pages
locale <-
case (languageOption voptions) of
Expand Down Expand Up @@ -87,18 +104,18 @@ computeLocale lang = case map toLower <$> lang of
Just ('e':'n':_) -> English
Just (a:b:'_':_) -> Other (a:b:[])
Just (a:b:c:'_':_) -> Other (a:b:c:[])
Just str -> Unknown str
Just other -> Unknown other

getPagePath :: Locale -> String -> [String] -> IO (Maybe FilePath)
getPagePath locale page platformDirs = do
getPagePath locale page pDirs = do
dataDir <- getXdgDirectory XdgData tldrDirName
let currentLocale = case locale of
English -> "pages"
Other xs -> "pages." <> xs
Unknown xs -> "pages." <> xs
Missing -> "pages"
pageDir = dataDir </> "tldr" </> currentLocale
paths = map (\x -> pageDir </> x </> page <.> "md") platformDirs
paths = map (\x -> pageDir </> x </> page <.> "md") pDirs
foldr1 (<|>) <$> mapM pageExists paths

pageExists :: FilePath -> IO (Maybe FilePath)
Expand Down

0 comments on commit e80e4b8

Please sign in to comment.