add getopt to support language
This commit is contained in:
parent
aa900ac405
commit
9a145bb042
|
@ -62,6 +62,8 @@ parse_to_gemini tab =
|
|||
, mime = get_mime (tab!!0!!3)
|
||||
}
|
||||
|
||||
get_reply :: String -> Int -> String
|
||||
get_reply mime 20 =
|
||||
"20 " ++ mime ++ "; \r\n"
|
||||
get_reply :: String -> Int -> String -> String
|
||||
get_reply mime return lang
|
||||
| lang /= "" = "20 " ++ mime ++ "; lang=" ++ lang ++ " \r\n"
|
||||
| lang == "" = "20 " ++ mime ++ "; \r\n"
|
||||
| otherwise = "50\r\n"
|
||||
|
|
28
Vger.hs
28
Vger.hs
|
@ -1,9 +1,33 @@
|
|||
import Gemini
|
||||
import Options.Applicative
|
||||
|
||||
data Sample = Sample
|
||||
{ baseDir :: String
|
||||
, language :: String
|
||||
}
|
||||
|
||||
sample :: Parser Sample
|
||||
sample = Sample
|
||||
<$> strOption
|
||||
( long "baseDir"
|
||||
<> short 'd'
|
||||
<> help "base directory to serve files from"
|
||||
<> value "/var/gemini/")
|
||||
<*> strOption
|
||||
( long "language"
|
||||
<> short 'l'
|
||||
<> help "language to use in the response for gemini files"
|
||||
<> value "")
|
||||
|
||||
opts :: ParserInfo Sample
|
||||
opts = info (sample <**> helper)
|
||||
( fullDesc)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
options <- execParser opts
|
||||
url <- get_request
|
||||
let request = parse_to_gemini (parse_url url)
|
||||
content <- read_file (file request)
|
||||
putStr (get_reply (mime request) 20)
|
||||
content <- read_file pathname
|
||||
putStr (get_reply (mime request) 20 (language options))
|
||||
putStr content
|
||||
|
|
Loading…
Reference in New Issue