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
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
installed = [Package]
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
Apt.installed [Package
"lightdm"]
autoLogin :: User -> RevertableProperty DebianLike DebianLike
autoLogin :: User
-> RevertableProperty
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
autoLogin (User Package
u) = (Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
setup Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
-> RevertableProperty
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
forall setupmetatypes undometatypes.
Property setupmetatypes
-> Property undometatypes
-> RevertableProperty setupmetatypes undometatypes
<!> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
cleanup)
RevertableProperty
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
-> Package
-> RevertableProperty
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
forall p. IsProp p => p -> Package -> p
`describe` (Package
"lightdm autologin for " Package -> Package -> Package
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
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish]))
setup = Package
cf Package -> (Package, Package, Package) -> Property UnixLike
`ConfFile.containsIniSetting` (Package, Package, Package)
setting
Property UnixLike
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
-> CombinedType
(Property UnixLike)
(Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish]))
forall x y. Combines x y => x -> y -> CombinedType x y
`requires` Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
installed
cleanup :: Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
cleanup = Property UnixLike
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
forall (p :: * -> *) (untightened :: [MetaType])
(tightened :: [MetaType]).
(TightenTargets p, TightenTargetsAllowed untightened tightened,
SingI tightened) =>
p (MetaTypes untightened) -> p (MetaTypes tightened)
tightenTargets (Property UnixLike
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish]))
-> Property UnixLike
-> Property
(MetaTypes '[ 'Targeting 'OSDebian, 'Targeting 'OSBuntish])
forall a b. (a -> b) -> a -> b
$ Package
cf Package -> (Package, Package, Package) -> Property UnixLike
`ConfFile.lacksIniSetting` (Package, Package, Package)
setting