{- todeets: generate deets gotas from ShareGuard database Copyright (C) 2011 Clint Adams This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -} import Control.Monad.Trans import Control.Monad.Error import Database.HaskellDB.HDBC.SQLite3 import Database.HaskellDB import Config as C import DB as D main = do cnf <- C.getConfig "/usr/local/etc/shareguard.conf" ownership <- withDB cnf $ \db -> getOwnership db mapM_ putStrLn $ map (generateGota (C.rootdir cnf)) ownership putStrLn "-- deets! --" generateGota :: String -> (String,String) -> String generateGota rootdir (x,y) = "file.directory({\"" ++ rootdir ++ x ++ "\"}, {\n" ++ " ensure = \"present\",\n" ++ " owner = \"" ++ y ++ "\",\n" ++ " group = \"sftponly\",\n" ++ " mode = \"2755\"\n" ++ "})\n\n"