import Rakka.Resource.Index
import Rakka.Resource.Object
import Rakka.Resource.Render
+import Rakka.Storage
import Subversion
import System.Console.GetOpt
import System.Directory
| OptGroupName String
| OptLogLevel Priority
| OptDisableStderrLog
+ | OptRebuildIndex
| OptHelp
deriving (Eq, Show)
(NoArg OptDisableStderrLog)
("Disable logging to stderr.")
+ , Option [] ["rebuild-index"]
+ (NoArg OptRebuildIndex)
+ ("Rebuild the index database.")
+
, Option ['h'] ["help"]
(NoArg OptHelp)
"Print this message."
setupLogger opts
env <- setupEnv lsdir portNum
- noticeM logger ("Listening to " ++ show portNum ++ "/tcp...")
+ rebuildIndexIfRequested env opts
+
+ infoM logger ("Listening to " ++ show portNum ++ "/tcp...")
runHttpd (envLucuConf env) (resTree env) [fallbackRender env]
createLocalStateDir path uid gid
= do createDirectoryIfMissing True path
setOwnerAndGroup path uid gid
+
+
+rebuildIndexIfRequested :: Environment -> [CmdOpt] -> IO ()
+rebuildIndexIfRequested env opts
+ = do let rebuild = isJust $ find (\ x -> case x of
+ OptRebuildIndex -> True
+ _ -> False) opts
+ when rebuild
+ $ rebuildIndex (envStorage env)
\ No newline at end of file