fbrnch-1.2: src/Krb.hs
module Krb (
fasIdFromKrb,
maybeFasIdFromKrb,
krbTicket
) where
import Common
import SimpleCmd
krbTicket :: IO ()
krbTicket = do
krb <- klistEntryFedora
if null krb
then error' "No krb5 ticket found for FEDORAPROJECT.ORG"
else
when (last krb == "(Expired)") $ do
putStrLn $ unwords krb
cmd_ "fkinit" []
putNewLn
maybeFasIdFromKrb :: IO (Maybe String)
maybeFasIdFromKrb =
fmap (removeSuffix "@FEDORAPROJECT.ORG") . find ("@FEDORAPROJECT.ORG" `isSuffixOf`) <$> klistEntryFedora
fasIdFromKrb :: IO String
fasIdFromKrb = do
mfasid <- maybeFasIdFromKrb
case mfasid of
Nothing -> error' "Could not determine fasid from klist"
Just fasid -> return fasid
klistEntryFedora :: IO [String]
klistEntryFedora = do
mres <- cmdMaybe "klist" ["-l"]
return $
maybe []
(words . fromMaybe "" . find ("@FEDORAPROJECT.ORG" `isInfixOf`) . lines)
mres