diff options
| author | Joey Hess <joey@kitenet.net> | 2014-06-01 16:58:05 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-06-01 16:58:05 -0400 |
| commit | 740740d21553e45447259c3a21e95e94b1e59a42 (patch) | |
| tree | 40d91a31b776de6b3143b713900c5ea03bc2739d /src/Propellor/CmdLine.hs | |
| parent | d224463dcd45b798c532d75ed84d9b1282b83e85 (diff) | |
Added --dump to dump out a field of a host's privdata. Useful for editing it.
Diffstat (limited to 'src/Propellor/CmdLine.hs')
| -rw-r--r-- | src/Propellor/CmdLine.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Propellor/CmdLine.hs b/src/Propellor/CmdLine.hs index a7b7ef96..06a5921d 100644 --- a/src/Propellor/CmdLine.hs +++ b/src/Propellor/CmdLine.hs @@ -27,6 +27,7 @@ usage = do , " propellor hostname" , " propellor --spin hostname" , " propellor --set hostname field" + , " propellor --dump hostname field" , " propellor --add-key keyid" ] exitFailure @@ -38,9 +39,8 @@ processCmdLine = go =<< getArgs go ("--spin":h:[]) = return $ Spin h go ("--boot":h:[]) = return $ Boot h go ("--add-key":k:[]) = return $ AddKey k - go ("--set":h:f:[]) = case readish f of - Just pf -> return $ Set h pf - Nothing -> errorMessage $ "Unknown privdata field " ++ f + go ("--set":h:f:[]) = withprivfield f (return . Set h) + go ("--dump":h:f:[]) = withprivfield f (return . Dump h) go ("--continue":s:[]) = case readish s of Just cmdline -> return $ Continue cmdline Nothing -> errorMessage "--continue serialization failure" @@ -56,6 +56,10 @@ processCmdLine = go =<< getArgs else return $ Run s go _ = usage + withprivfield s f = case readish s of + Just pf -> f pf + Nothing -> errorMessage $ "Unknown privdata field " ++ s + defaultMain :: [Host] -> IO () defaultMain hostlist = do DockerShim.cleanEnv @@ -66,6 +70,7 @@ defaultMain hostlist = do where go _ (Continue cmdline) = go False cmdline go _ (Set hn field) = setPrivData hn field + go _ (Dump hn field) = dumpPrivData hn field go _ (AddKey keyid) = addKey keyid go _ (Chain hn) = withhost hn $ \h -> do r <- runPropellor h $ ensureProperties $ hostProperties h |
