diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Gpg.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Propellor/Gpg.hs b/src/Propellor/Gpg.hs index 84f67dc1..60b0d52d 100644 --- a/src/Propellor/Gpg.hs +++ b/src/Propellor/Gpg.hs @@ -6,6 +6,7 @@ import System.FilePath import System.Directory import Data.Maybe import Data.List.Utils +import Control.Monad import Propellor.PrivData.Paths import Propellor.Message @@ -106,12 +107,14 @@ gitAdd f = boolSystem "git" ] gitCommitKeyRing :: String -> IO Bool -gitCommitKeyRing action = gitCommit - [ File keyring - , File privDataFile - , Param "-m" - , Param ("propellor " ++ action) - ] +gitCommitKeyRing action = do + -- Commit explicitly the keyring and privdata files, as other + -- changes may be staged by the user and shouldn't be committed. + tocommit <- filterM doesFileExist [ privDataFile, keyring] + gitCommit $ (map File tocommit) ++ + [ Param "-m" + , Param ("propellor " ++ action) + ] -- Adds --gpg-sign if there's a keyring. gpgSignParams :: [CommandParam] -> IO [CommandParam] |
