converted ViCfg (trivially)
This commit is contained in:
parent
02f6d9b33a
commit
a0b2fcc663
2 changed files with 19 additions and 19 deletions
|
@ -79,7 +79,7 @@ import qualified Command.GroupWanted
|
||||||
import qualified Command.Required
|
import qualified Command.Required
|
||||||
import qualified Command.Schedule
|
import qualified Command.Schedule
|
||||||
import qualified Command.Ungroup
|
import qualified Command.Ungroup
|
||||||
--import qualified Command.Vicfg
|
import qualified Command.Vicfg
|
||||||
import qualified Command.Sync
|
import qualified Command.Sync
|
||||||
--import qualified Command.Mirror
|
--import qualified Command.Mirror
|
||||||
--import qualified Command.AddUrl
|
--import qualified Command.AddUrl
|
||||||
|
@ -157,7 +157,7 @@ cmds =
|
||||||
, Command.Required.cmd
|
, Command.Required.cmd
|
||||||
, Command.Schedule.cmd
|
, Command.Schedule.cmd
|
||||||
, Command.Ungroup.cmd
|
, Command.Ungroup.cmd
|
||||||
-- , Command.Vicfg.cmd
|
, Command.Vicfg.cmd
|
||||||
-- , Command.LookupKey.cmd
|
-- , Command.LookupKey.cmd
|
||||||
-- , Command.ContentLocation.cmd
|
-- , Command.ContentLocation.cmd
|
||||||
-- , Command.ExamineKey.cmd
|
-- , Command.ExamineKey.cmd
|
||||||
|
|
|
@ -175,7 +175,7 @@ genCfg cfg descs = unlines $ intercalate [""]
|
||||||
(\(s, g) -> gline g s)
|
(\(s, g) -> gline g s)
|
||||||
(\g -> gline g "")
|
(\g -> gline g "")
|
||||||
where
|
where
|
||||||
gline g value = [ unwords ["groupwanted", g, "=", value] ]
|
gline g val = [ unwords ["groupwanted", g, "=", val] ]
|
||||||
allgroups = S.unions $ stdgroups : M.elems (cfgGroupMap cfg)
|
allgroups = S.unions $ stdgroups : M.elems (cfgGroupMap cfg)
|
||||||
stdgroups = S.fromList $ map fromStandardGroup [minBound..maxBound]
|
stdgroups = S.fromList $ map fromStandardGroup [minBound..maxBound]
|
||||||
|
|
||||||
|
@ -198,9 +198,9 @@ genCfg cfg descs = unlines $ intercalate [""]
|
||||||
(\(l, u) -> line "schedule" u $ fromScheduledActivities l)
|
(\(l, u) -> line "schedule" u $ fromScheduledActivities l)
|
||||||
(\u -> line "schedule" u "")
|
(\u -> line "schedule" u "")
|
||||||
|
|
||||||
line setting u value =
|
line setting u val =
|
||||||
[ com $ "(for " ++ fromMaybe "" (M.lookup u descs) ++ ")"
|
[ com $ "(for " ++ fromMaybe "" (M.lookup u descs) ++ ")"
|
||||||
, unwords [setting, fromUUID u, "=", value]
|
, unwords [setting, fromUUID u, "=", val]
|
||||||
]
|
]
|
||||||
|
|
||||||
settings :: Ord v => Cfg -> M.Map UUID String -> (Cfg -> M.Map UUID v) -> [String] -> ((v, UUID) -> [String]) -> (UUID -> [String]) -> [String]
|
settings :: Ord v => Cfg -> M.Map UUID String -> (Cfg -> M.Map UUID v) -> [String] -> ((v, UUID) -> [String]) -> (UUID -> [String]) -> [String]
|
||||||
|
@ -235,42 +235,42 @@ parseCfg defcfg = go [] defcfg . lines
|
||||||
| null l = Right cfg
|
| null l = Right cfg
|
||||||
| "#" `isPrefixOf` l = Right cfg
|
| "#" `isPrefixOf` l = Right cfg
|
||||||
| null setting || null f = Left "missing field"
|
| null setting || null f = Left "missing field"
|
||||||
| otherwise = parsed cfg f setting value'
|
| otherwise = parsed cfg f setting val'
|
||||||
where
|
where
|
||||||
(setting, rest) = separate isSpace l
|
(setting, rest) = separate isSpace l
|
||||||
(r, value) = separate (== '=') rest
|
(r, val) = separate (== '=') rest
|
||||||
value' = trimspace value
|
val' = trimspace val
|
||||||
f = reverse $ trimspace $ reverse $ trimspace r
|
f = reverse $ trimspace $ reverse $ trimspace r
|
||||||
trimspace = dropWhile isSpace
|
trimspace = dropWhile isSpace
|
||||||
|
|
||||||
parsed cfg f setting value
|
parsed cfg f setting val
|
||||||
| setting == "trust" = case readTrustLevel value of
|
| setting == "trust" = case readTrustLevel val of
|
||||||
Nothing -> badval "trust value" value
|
Nothing -> badval "trust value" val
|
||||||
Just t ->
|
Just t ->
|
||||||
let m = M.insert u t (cfgTrustMap cfg)
|
let m = M.insert u t (cfgTrustMap cfg)
|
||||||
in Right $ cfg { cfgTrustMap = m }
|
in Right $ cfg { cfgTrustMap = m }
|
||||||
| setting == "group" =
|
| setting == "group" =
|
||||||
let m = M.insert u (S.fromList $ words value) (cfgGroupMap cfg)
|
let m = M.insert u (S.fromList $ words val) (cfgGroupMap cfg)
|
||||||
in Right $ cfg { cfgGroupMap = m }
|
in Right $ cfg { cfgGroupMap = m }
|
||||||
| setting == "wanted" =
|
| setting == "wanted" =
|
||||||
case checkPreferredContentExpression value of
|
case checkPreferredContentExpression val of
|
||||||
Just e -> Left e
|
Just e -> Left e
|
||||||
Nothing ->
|
Nothing ->
|
||||||
let m = M.insert u value (cfgPreferredContentMap cfg)
|
let m = M.insert u val (cfgPreferredContentMap cfg)
|
||||||
in Right $ cfg { cfgPreferredContentMap = m }
|
in Right $ cfg { cfgPreferredContentMap = m }
|
||||||
| setting == "required" =
|
| setting == "required" =
|
||||||
case checkPreferredContentExpression value of
|
case checkPreferredContentExpression val of
|
||||||
Just e -> Left e
|
Just e -> Left e
|
||||||
Nothing ->
|
Nothing ->
|
||||||
let m = M.insert u value (cfgRequiredContentMap cfg)
|
let m = M.insert u val (cfgRequiredContentMap cfg)
|
||||||
in Right $ cfg { cfgRequiredContentMap = m }
|
in Right $ cfg { cfgRequiredContentMap = m }
|
||||||
| setting == "groupwanted" =
|
| setting == "groupwanted" =
|
||||||
case checkPreferredContentExpression value of
|
case checkPreferredContentExpression val of
|
||||||
Just e -> Left e
|
Just e -> Left e
|
||||||
Nothing ->
|
Nothing ->
|
||||||
let m = M.insert f value (cfgGroupPreferredContentMap cfg)
|
let m = M.insert f val (cfgGroupPreferredContentMap cfg)
|
||||||
in Right $ cfg { cfgGroupPreferredContentMap = m }
|
in Right $ cfg { cfgGroupPreferredContentMap = m }
|
||||||
| setting == "schedule" = case parseScheduledActivities value of
|
| setting == "schedule" = case parseScheduledActivities val of
|
||||||
Left e -> Left e
|
Left e -> Left e
|
||||||
Right l ->
|
Right l ->
|
||||||
let m = M.insert u l (cfgScheduleMap cfg)
|
let m = M.insert u l (cfgScheduleMap cfg)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue