From 652365ffb1c71b5758329c17015cb5c1912da1f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Fri, 7 Mar 2025 20:04:33 +0100 Subject: Use XDG data directory for storage by default Changelog: Use XDG data directory for default storage path --- main/Main.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'main/Main.hs') diff --git a/main/Main.hs b/main/Main.hs index 6e96c14..6c9d165 100644 --- a/main/Main.hs +++ b/main/Main.hs @@ -31,6 +31,7 @@ import Data.Typeable import Network.Socket import System.Console.GetOpt +import System.Directory import System.Environment import System.Exit import System.IO @@ -152,6 +153,14 @@ servicesOptions = concatMap helper $ "all" : map soptName availableServices | otherwise = s : change name f ss change _ _ [] = [] +getDefaultStorageDir :: IO FilePath +getDefaultStorageDir = do + lookupEnv "EREBOS_DIR" >>= \case + Just dir -> return dir + Nothing -> doesFileExist "./.erebos/erebos-storage" >>= \case + True -> return "./.erebos" + False -> getXdgDirectory XdgData "erebos" + main :: IO () main = do (opts, args) <- (getOpt RequireOrder (options ++ servicesOptions) <$> getArgs) >>= \case @@ -163,7 +172,7 @@ main = do exitFailure st <- liftIO $ case optStorage opts of - DefaultStorage -> openStorage . fromMaybe "./.erebos" =<< lookupEnv "EREBOS_DIR" + DefaultStorage -> openStorage =<< getDefaultStorageDir FilesystemStorage path -> openStorage path MemoryStorage -> memoryStorage -- cgit v1.2.3