From 2fbde3456818be8cc3d4d7a78d8e05c750efbb98 Mon Sep 17 00:00:00 2001 From: Marty Sluijtman Date: Sun, 6 Aug 2023 16:55:27 +0200 Subject: [PATCH] Cleanup --- app/Main.hs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/Main.hs b/app/Main.hs index 8fac5d0..a64364c 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -12,7 +12,7 @@ data Args = Args { title :: String , directory :: FilePath , fileHead :: FilePath - , verbose :: Bool + --, verbose :: Bool , names :: Bool , cgi :: Bool , back :: Bool @@ -23,7 +23,7 @@ args = Args <$> strOption ( long "title" <> short 't' <> value "Title Left Blank" <> help "Document title" ) <*> strOption ( long "directory" <> short 'd' <> value "./" <> help "Directory to parse" ) <*> strOption ( long "header" <> short 'H' <> value "" <> help "Header text" ) - <*> switch ( long "verbose" <> short 'v' <> help "Verbose mode") + -- <*> switch ( long "verbose" <> short 'v' <> help "Verbose mode") <*> switch ( long "names" <> short 'n' <> help "Generate link names based on first of each document" ) <*> switch ( long "cgi" <> help "Output gemini file header") <*> switch ( long "back" <> help "Print 'return to dir' url") @@ -37,7 +37,8 @@ main = parseArgs =<< execParser opts <> header "Generate a gemini page index") parseArgs :: Args -> IO() -parseArgs (Args t dir h v r c b) = do +--parseArgs (Args t dir h v n c b) = do +parseArgs (Args t dir h n c b) = do if c then do print CgiSuccess putStrLn $ "# " ++ t @@ -48,18 +49,20 @@ parseArgs (Args t dir h v r c b) = do else putStr "\n" if b then do - mapM_ (mkIndex r dir) . filter (isSuffixOf ".gmi") =<< getDirectoryContents dir + mapM_ (mkIndex n dir) . filter (isSuffixOf ".gmi") =<< getDirectoryContents dir putStr "\n" putStrLn "=> .. " - else mapM_ (mkIndex r dir) . filter (isSuffixOf ".gmi") =<< getDirectoryContents dir + else mapM_ (mkIndex n dir) . filter (isSuffixOf ".gmi") =<< getDirectoryContents dir mkIndex :: Bool -> FilePath -> FilePath -> IO () -mkIndex False d l = putStrLn $ "=> " ++ path - where path = d++"/"++l +mkIndex False d f = putStrLn $ "=> " ++ path d + where path s + | s == "./" = f + | otherwise = s++"/"++f -mkIndex True d l = - let path = d ++ "/" ++ l +mkIndex True d f = + let path = d ++ "/" ++ f trim s | length s >= 8 = appendDots . unwords . take 8 . cleanString $ s | otherwise = unwords . cleanString $ s