puppetresources 0.1.3 → 0.3.0
raw patch · 2 files changed
+21/−19 lines, 2 filesdep ~hsfacterdep ~language-puppet
Dependency ranges changed: hsfacter, language-puppet
Files
- Main.hs +18/−16
- puppetresources.cabal +3/−3
Main.hs view
@@ -126,23 +126,22 @@ hackish as it will generate facts from the local computer ! -} -initializedaemon :: String -> IO ([Char] -> IO FinalCatalog)-initializedaemon puppetdir = do+initializedaemonWithPuppet :: Maybe String -> String -> IO ([Char] -> IO FinalCatalog)+initializedaemonWithPuppet purl puppetdir = do LOG.updateGlobalLogger "Puppet.Daemon" (LOG.setLevel LOG.INFO)- rawfacts <- allFacts- queryfunc <- initDaemon (genPrefs puppetdir)+ let prefs = genPrefs puppetdir+ queryfunc <- initDaemon (prefs { puppetDBurl = purl }) return (\nodename -> do- let ofacts = genFacts rawfacts- (hostname, ddomainname) = break (== '.') nodename- domainname = tail $ ddomainname- nfacts = genFacts [("fqdn", nodename), ("hostname", hostname), ("domain", domainname), ("rootrsa", "xxx")]- allfacts = Map.union nfacts ofacts- o <- queryfunc nodename allfacts+ o <- allFacts nodename >>= queryfunc nodename case o of Left err -> error err Right x -> return x ) +{-| A helper for when you don't want to use PuppetDB -}+initializedaemon :: String -> IO ([Char] -> IO FinalCatalog)+initializedaemon = initializedaemonWithPuppet Nothing+ showparam (k,v) = k ++ " => " ++ show v showtdiff :: (DI, String) -> String@@ -257,9 +256,12 @@ main :: IO () main = do args <- getArgs- when (length args == 1) (doparse (head args))- let (puppetdir, nodename) | (length args /= 2) && (length args /= 3) = usage- | otherwise = (args !! 0, args !! 1)+ let (rargs, puppeturl) = case args of+ ("-r":pu:xs) -> (xs, Just pu)+ _ -> (args, Nothing)+ when (length rargs == 1) (doparse (head rargs))+ let (puppetdir, nodename) | (length rargs /= 2) && (length rargs /= 3) = usage+ | otherwise = (rargs !! 0, rargs !! 1) getresname :: String -> Maybe (String, String) getresname r = let isresname = ((head $ reverse r) == ']') && ('[' `elem` r)@@ -272,8 +274,8 @@ Just (t,n) -> printResource t n cat Nothing -> printContent resname cat - queryfunc <- initializedaemon puppetdir+ queryfunc <- initializedaemonWithPuppet puppeturl puppetdir x <- queryfunc nodename- if length args == 3- then handlePrintResource (args !! 2) x+ if length rargs == 3+ then handlePrintResource (rargs !! 2) x else putStrLn $ showFCatalog x
puppetresources.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: puppetresources-version: 0.1.3+version: 0.3.0 synopsis: A program that displays the puppet resources associated to a node given .pp files. -- description: license: GPL-3@@ -21,8 +21,8 @@ ghc-options: -rtsopts -- other-modules: build-depends: base >=3 && <5,- language-puppet >= 0.1.7,- hsfacter >= 0.1.0.3,+ language-puppet >= 0.1.8.0,+ hsfacter >= 0.2.0.0, containers, hslogger, Diff,