diff options
| author | Joey Hess <joey@kitenet.net> | 2014-05-14 19:41:05 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-05-14 19:41:05 -0400 |
| commit | 7115d1ec162b4059b3e8e8f84bd8d5898c1db025 (patch) | |
| tree | 42c1cce54e890e1d56484794ab33129132d8fee2 /Propellor/Property/Gpg.hs | |
| parent | ffe371a9d42cded461236e972a24a142419d7fc4 (diff) | |
moved source code to src
This is to work around OSX's brain-damange regarding filename case
insensitivity.
Avoided moving config.hs, because it's a config file. Put in a symlink to
make build work.
Diffstat (limited to 'Propellor/Property/Gpg.hs')
| -rw-r--r-- | Propellor/Property/Gpg.hs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/Propellor/Property/Gpg.hs b/Propellor/Property/Gpg.hs deleted file mode 100644 index 64ea9fea..00000000 --- a/Propellor/Property/Gpg.hs +++ /dev/null @@ -1,41 +0,0 @@ -module Propellor.Property.Gpg where - -import Propellor -import qualified Propellor.Property.Apt as Apt -import Utility.FileSystemEncoding - -import System.PosixCompat - -installed :: Property -installed = Apt.installed ["gnupg"] - --- | Sets up a user with a gpg key from the privdata. --- --- Note that if a secret key is exported using gpg -a --export-secret-key, --- the public key is also included. Or just a public key could be --- exported, and this would set it up just as well. --- --- Recommend only using this for low-value dedicated role keys. --- No attempt has been made to scrub the key out of memory once it's used. --- --- The GpgKeyId does not have to be a numeric id; it can just as easily --- be a description of the key. -keyImported :: GpgKeyId -> UserName -> Property -keyImported keyid user = flagFile' (property desc go) genflag - `requires` installed - where - desc = user ++ " has gpg key " ++ show keyid - genflag = do - d <- dotDir user - return $ d </> ".propellor-imported-keyid-" ++ keyid - go = withPrivData (GpgKey keyid) $ \key -> makeChange $ - withHandle StdinHandle createProcessSuccess - (proc "su" ["-c", "gpg --import", user]) $ \h -> do - fileEncoding h - hPutStr h key - hClose h - -dotDir :: UserName -> IO FilePath -dotDir user = do - home <- homeDirectory <$> getUserEntryForName user - return $ home </> ".gnupg" |
