sim: fix changing settings bug

This commit is contained in:
Joey Hess 2024-09-17 11:37:25 -04:00
parent 4c7db31c20
commit ae19ad0fa1
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -920,22 +920,22 @@ updateSimRepoState newst sr = do
, removeDiff = const . flip groupChange (const mempty) , removeDiff = const . flip groupChange (const mempty)
} }
updateField oldst newst simWanted $ DiffUpdate updateField oldst newst simWanted $ DiffUpdate
{ replaceDiff = const . preferredContentSet { replaceDiff = replaceNew preferredContentSet
, addDiff = preferredContentSet , addDiff = preferredContentSet
, removeDiff = const . flip preferredContentSet mempty , removeDiff = const . flip preferredContentSet mempty
} }
updateField oldst newst simRequired $ DiffUpdate updateField oldst newst simRequired $ DiffUpdate
{ replaceDiff = const . requiredContentSet { replaceDiff = replaceNew requiredContentSet
, addDiff = requiredContentSet , addDiff = requiredContentSet
, removeDiff = const . flip requiredContentSet mempty , removeDiff = const . flip requiredContentSet mempty
} }
updateField oldst newst simGroupWanted $ DiffUpdate updateField oldst newst simGroupWanted $ DiffUpdate
{ replaceDiff = const . groupPreferredContentSet { replaceDiff = replaceNew groupPreferredContentSet
, addDiff = groupPreferredContentSet , addDiff = groupPreferredContentSet
, removeDiff = const . flip groupPreferredContentSet mempty , removeDiff = const . flip groupPreferredContentSet mempty
} }
updateField oldst newst simMaxSize $ DiffUpdate updateField oldst newst simMaxSize $ DiffUpdate
{ replaceDiff = const . recordMaxSize { replaceDiff = replaceNew recordMaxSize
, addDiff = recordMaxSize , addDiff = recordMaxSize
, removeDiff = const . flip recordMaxSize (MaxSize 0) , removeDiff = const . flip recordMaxSize (MaxSize 0)
} }
@ -953,7 +953,7 @@ updateSimRepoState newst sr = do
(getSimLocations' ls) (getSimLocations' ls)
} }
updateField oldst newst simFiles $ DiffUpdate updateField oldst newst simFiles $ DiffUpdate
{ replaceDiff = const . stageannexedfile { replaceDiff = replaceNew stageannexedfile
, addDiff = stageannexedfile , addDiff = stageannexedfile
, removeDiff = const . unstageannexedfile , removeDiff = const . unstageannexedfile
} }
@ -987,6 +987,9 @@ data DiffUpdate a b m = DiffUpdate
, removeDiff :: a -> b -> m () , removeDiff :: a -> b -> m ()
} }
replaceNew :: (a -> b -> m ()) -> a -> b -> b -> m ()
replaceNew f a new _old = f a new
updateMap updateMap
:: (Monad m, Ord a, Eq b) :: (Monad m, Ord a, Eq b)
=> M.Map a b => M.Map a b