{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} -- | Configurable paths for Ava data directories. -- -- In development, uses default paths under @_/var/ava/@. -- In production, set @AVA_DATA_ROOT@ to @/home/ava@ to use the dedicated workspace. module Omni.Agent.Paths ( avaDataRoot, skillsDir, outreachDir, userScratchRoot, userScratchDir, ) where import Alpha import qualified Data.Text as Text import System.Environment (lookupEnv) import System.FilePath (()) import System.IO.Unsafe (unsafePerformIO) avaDataRoot :: FilePath avaDataRoot = unsafePerformIO <| do m <- lookupEnv "AVA_DATA_ROOT" pure (fromMaybe "_/var/ava" m) {-# NOINLINE avaDataRoot #-} skillsDir :: FilePath skillsDir = avaDataRoot "skills" outreachDir :: FilePath outreachDir = avaDataRoot "outreach" userScratchRoot :: FilePath userScratchRoot = avaDataRoot "users" userScratchDir :: Text -> FilePath userScratchDir user = userScratchRoot Text.unpack user