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)
|
, mime = get_mime (tab!!0!!3)
|
||||||
}
|
}
|
||||||
|
|
||||||
get_reply :: String -> Int -> String
|
get_reply :: String -> Int -> String -> String
|
||||||
get_reply mime 20 =
|
get_reply mime return lang
|
||||||
"20 " ++ mime ++ "; \r\n"
|
| 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 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 :: IO ()
|
||||||
main = do
|
main = do
|
||||||
|
options <- execParser opts
|
||||||
url <- get_request
|
url <- get_request
|
||||||
let request = parse_to_gemini (parse_url url)
|
let request = parse_to_gemini (parse_url url)
|
||||||
content <- read_file (file request)
|
content <- read_file pathname
|
||||||
putStr (get_reply (mime request) 20)
|
putStr (get_reply (mime request) 20 (language options))
|
||||||
putStr content
|
putStr content
|
||||||
|
|
Loading…
Reference in New Issue