push out config changes

This commit is contained in:
Joey Hess 2012-10-21 15:50:49 -04:00
parent 1f1d75bc13
commit bcaf320ed8
2 changed files with 9 additions and 3 deletions

View file

@ -203,7 +203,7 @@ startAssistant assistant daemonize webappwaiter = withThreadState $ \st -> do
, assist $ netWatcherThread st dstatus scanremotes , assist $ netWatcherThread st dstatus scanremotes
, assist $ netWatcherFallbackThread st dstatus scanremotes , assist $ netWatcherFallbackThread st dstatus scanremotes
, assist $ transferScannerThread st dstatus scanremotes transferqueue , assist $ transferScannerThread st dstatus scanremotes transferqueue
, assist $ configMonitorThread st dstatus branchhandle , assist $ configMonitorThread st dstatus branchhandle commitchan
, watch $ watchThread st dstatus transferqueue changechan , watch $ watchThread st dstatus transferqueue changechan
] ]
waitForTermination waitForTermination

View file

@ -11,6 +11,7 @@ import Assistant.Common
import Assistant.BranchChange import Assistant.BranchChange
import Assistant.ThreadedMonad import Assistant.ThreadedMonad
import Assistant.DaemonStatus import Assistant.DaemonStatus
import Assistant.Commits
import Utility.ThreadScheduler import Utility.ThreadScheduler
import Logs.UUID import Logs.UUID
import Logs.Trust import Logs.Trust
@ -23,6 +24,7 @@ import qualified Git.LsTree as LsTree
import qualified Annex.Branch import qualified Annex.Branch
import qualified Annex import qualified Annex
import Data.Time.Clock
import qualified Data.Set as S import qualified Data.Set as S
thisThread :: ThreadName thisThread :: ThreadName
@ -36,8 +38,8 @@ thisThread = "ConfigMonitor"
- if the branch has not changed in a while, configuration changes will - if the branch has not changed in a while, configuration changes will
- be detected immediately. - be detected immediately.
-} -}
configMonitorThread :: ThreadState -> DaemonStatusHandle -> BranchChangeHandle -> NamedThread configMonitorThread :: ThreadState -> DaemonStatusHandle -> BranchChangeHandle -> CommitChan -> NamedThread
configMonitorThread st dstatus branchhandle = thread $ do configMonitorThread st dstatus branchhandle commitchan = thread $ do
r <- runThreadState st Annex.gitRepo r <- runThreadState st Annex.gitRepo
go r =<< getConfigs r go r =<< getConfigs r
where where
@ -52,6 +54,10 @@ configMonitorThread st dstatus branchhandle = thread $ do
debug thisThread $ "reloading config" : debug thisThread $ "reloading config" :
map fst (S.toList changedconfigs) map fst (S.toList changedconfigs)
reloadConfigs st dstatus changedconfigs reloadConfigs st dstatus changedconfigs
{- Record a commit to get this config
- change pushed out to remotes. -}
time <- getCurrentTime
recordCommit commitchan (Commit time)
go r new go r new
{- Config files, and their checksums. -} {- Config files, and their checksums. -}