diff --git a/manifests/conf/variable.pp b/manifests/conf/variable.pp new file mode 100644 index 0000000..b0d398e --- /dev/null +++ b/manifests/conf/variable.pp @@ -0,0 +1,36 @@ +# Sets values in the variable table of the alternc database +define alternc::conf::variable ( + $ensure = 'present', + $key = $name, + $value = '', +) { + $command_set = "/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -e \"update variable set value = '${value}' where name = '${key}';\"" + $command_exists = "/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -e \"select value from variable where name = '${key}';\" | grep -q value" + $command_remove = "/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -e \"delete from variable where name = '${key}'\"" + $command_is = "/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -e \"select value from variable where name = '${key}';\" | grep -q ${value}" + $command_add = "/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -e \"insert into variable (name, value) values ('${key}', '${value}');\"" + $real_ensure = $ensure ? { + 'absent' => 'absent', + default => 'present' + } + + if $real_ensure == 'present' { + exec { "alternc_variable_set_${name}": + command => $command_set, + unless => $command_is, + require => Package['alternc'], + } + exec { "alternc_variable_add_${name}": + command => $command_add, + unless => $command_exists, + require => Package['alternc'], + } + } + else { + exec { "alternc_variable_remove_${name}": + command => $command_remove, + onlyif => $command_exists, + require => Package['alternc'], + } + } +}