packages feed

tianbar-0.4.2.0: src/System/Tianbar/Plugin/GSettings.hs

module System.Tianbar.Plugin.GSettings where

-- GSettings plugin

import Control.Monad.IO.Class

import Happstack.Server

import System.Process

import System.Tianbar.Plugin

data GSettings = GSettings

instance Plugin GSettings where
    initialize _ = return GSettings

    handler _ = dir "gsettings" $
        path $ \schema ->
        path $ \key -> do
            nullDir
            setting <- liftIO $ gsettingsGet schema key
            return $ toResponse setting

gsettingsGet :: String -> String -> IO String
gsettingsGet schema key = do
    output <- readProcess "gsettings" ["get", schema, key] []
    let len = length output
    return $ drop 1 $ take (len - 2) output