module Propellor.Property.LightDM where
import Propellor.Base
import qualified Propellor.Property.Apt as Apt
import qualified Propellor.Property.ConfFile as ConfFile
installed :: Property DebianLike
installed :: Property DebianLike
installed = [Package] -> Property DebianLike
Apt.installed [Package
"lightdm"]
autoLogin :: User -> RevertableProperty DebianLike DebianLike
autoLogin :: User -> RevertableProperty DebianLike DebianLike
autoLogin (User Package
u) = (Property DebianLike
setup forall setupmetatypes undometatypes.
Property setupmetatypes
-> Property undometatypes
-> RevertableProperty setupmetatypes undometatypes
<!> Property DebianLike
cleanup)
forall p. IsProp p => p -> Package -> p
`describe` (Package
"lightdm autologin for " forall a. [a] -> [a] -> [a]
++ Package
u)
where
cf :: Package
cf = Package
"/etc/lightdm/lightdm.conf"
setting :: (Package, Package, Package)
setting = (Package
"Seat:*", Package
"autologin-user", Package
u)
setup :: CombinedType (Property UnixLike) (Property DebianLike)
setup = Package
cf Package -> (Package, Package, Package) -> Property UnixLike
`ConfFile.containsIniSetting` (Package, Package, Package)
setting
forall x y. Combines x y => x -> y -> CombinedType x y
`requires` Property DebianLike
installed
cleanup :: Property DebianLike
cleanup = forall (p :: * -> *) (untightened :: [MetaType])
(tightened :: [MetaType]).
(TightenTargets p, TightenTargetsAllowed untightened tightened,
SingI tightened) =>
p (MetaTypes untightened) -> p (MetaTypes tightened)
tightenTargets forall a b. (a -> b) -> a -> b
$ Package
cf Package -> (Package, Package, Package) -> Property UnixLike
`ConfFile.lacksIniSetting` (Package, Package, Package)
setting