136 lines
2.8 KiB
Puppet
136 lines
2.8 KiB
Puppet
|
|
# Install support for setting D-Conf default settings
|
|
#
|
|
class gnome::dconf {
|
|
|
|
file { "/etc/dconf/db/site.d":
|
|
ensure => directory,
|
|
source => "puppet:///modules/custom/empty",
|
|
mode => "0755",
|
|
owner => "root",
|
|
group => "root",
|
|
purge => true,
|
|
force => true,
|
|
recurse => true,
|
|
notify => Exec["dconf-update"],
|
|
}
|
|
|
|
file { "/etc/dconf/profile/user":
|
|
ensure => present,
|
|
content => "user-db:user\nsystem-db:site\n",
|
|
mode => "0644",
|
|
owner => "root",
|
|
group => "root",
|
|
notify => Exec["dconf-update"],
|
|
}
|
|
|
|
exec { "dconf-update":
|
|
command => "dconf update",
|
|
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
|
user => "root",
|
|
refreshonly => true,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install D-Conf defaults setting file
|
|
#
|
|
# === Parameters:
|
|
#
|
|
# $name:
|
|
# Settings name
|
|
#
|
|
# $source:
|
|
# File to use as source for settings
|
|
#
|
|
# === Sample usage:
|
|
#
|
|
# gnome::dconf::default { "desktop":
|
|
# source => "puppet:///files/common/gnome/desktop.conf",
|
|
# }
|
|
#
|
|
define gnome::dconf::default($source) {
|
|
|
|
include gnome::dconf
|
|
|
|
file { "/etc/dconf/db/site.d/${name}":
|
|
ensure => present,
|
|
source => $source,
|
|
mode => "0644",
|
|
owner => "root",
|
|
group => "root",
|
|
require => File["/etc/dconf/db/site.d"],
|
|
notify => Exec["dconf-update"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install D-Conf editor
|
|
#
|
|
class gnome::dconf::editor {
|
|
|
|
package { "dconf-editor":
|
|
ensure => installed,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Set GNOME gconf values.
|
|
#
|
|
# === Parameters
|
|
#
|
|
# $name:
|
|
# Key to update
|
|
# $value:
|
|
# Value for given key
|
|
# $source:
|
|
# Source to update. Valid values are "default" and "mandatory",
|
|
# defaults to "default".
|
|
# $type:
|
|
# Value type. Valid values are "string" and "int", defaults to
|
|
# string.
|
|
#
|
|
define gnome::gconf($value, $source = "default", $type = "string", $ltype = "") {
|
|
|
|
case $source {
|
|
"mandatory": {
|
|
$xml = "/etc/gconf/gconf.xml.mandatory"
|
|
}
|
|
"default": {
|
|
$xml = "/etc/gconf/gconf.xml.defaults"
|
|
}
|
|
default: {
|
|
fail("Invalid gnome::gconf source.")
|
|
}
|
|
}
|
|
|
|
case $ltype {
|
|
"string": {
|
|
$param = "--list-type 'string'"
|
|
}
|
|
|
|
default: {
|
|
$param = ""
|
|
}
|
|
}
|
|
|
|
exec { "gconftool-2 --direct --config-source xml:readwrite:${xml} --type ${type} ${param} --set '${name}' '${value}'":
|
|
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
|
unless => "test \"`gconftool-2 --direct --config-source xml:readwrite:${xml} --get '${name}'`\" = '${value}'",
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install GConf editor
|
|
#
|
|
class gnome::gconf::editor {
|
|
|
|
package { "gconf-editor":
|
|
ensure => installed,
|
|
}
|
|
|
|
}
|