module Hbro.Session where

-- {{{ Imports
--import Hbro.Types
-- import Hbro.Util

-- import Data.Foldable
-- import qualified Data.Text as T
-- import qualified Data.Text.IO as T

-- import Graphics.UI.Gtk.General.General
-- import Graphics.UI.Gtk.WebKit.WebView hiding(webViewGetUri)

-- import Prelude hiding(mapM_)

-- import System.Directory
-- import System.Environment
-- import System.Glib.Signals
-- import System.IO
-- import System.Posix.Process
-- import System.Process 
-- }}}

--setupSession :: WebView -> String -> IO ()
--setupSession webView sessionDirectory = do
--    pid             <- getProcessID
--    previousSession <- getDirectoryContents sessionDirectory
-- 
--    let sessionFile = sessionDirectory ++ show pid
-- 
--    _ <- on webView loadFinished $ \_ -> do
--        webViewGetUri webView >>= mapM_ ((writeFile sessionFile) . show)
--        
--    _ <- quitAdd 0 $ do
--        removeFile sessionFile
--        return False
--    
--    return ()


--loadFromSession :: [String] -> String -> IO ()
--loadFromSession dmenuOptions sessionDirectory = do
--    previousSession <- getDirectoryContents sessionDirectory
--    sessionURIs     <- mapM getSessionURI previousSession 
-- 
--    selection <- dmenu dmenuOptions (T.unlines sessionURIs)
--    
--    case selection of
--        ""      -> return ()
--        u       -> do
--            _ <- spawn "hbro" ["-u", u]
--            return ()
--    
--getSessionURI :: String -> IO T.Text
--getSessionURI fileName = do
--    configHome  <- getEnv "XDG_CONFIG_HOME"
--    file        <- T.readFile $ configHome ++ "/hbro/sessions/" ++ fileName
-- 
--    return $ (head . T.lines) file