Home / puppet-runit.git / Blob

puppet-runit.git (tree) / manifests / service.pp

define runit::service( $enabled = true, $content = '', $source = '', $sv_log = false ){
  Class['stdlib']           -> Runit::Service[$name]
  Class['runit::configure'] -> Runit::Service[$name]

  $daemon_root  = "${runit::daemon_dir}/${name}"
  $daemon_run   = "${runit::daemon_dir}/${name}/run"
  $service_root = "${runit::service_dir}/${name}"
  $log_root     = "${daemon_root}/log"
  $log_run      = "${daemon_root}/log/run"
  $sv_log_dir   = "/var/log/${name}"

  # If $source is empty, use $content, and vice-versa
  $use_static_source = empty( $source ) ? {
    true  => false,
    false => true,
  }

  file {
    ## The daemon directory
    "${name}_daemon_root":
      ensure  => directory,
      path    => $daemon_root,
      owner   => 'root',
      group   => 'root',
      mode    => 0755;

    ## The daemon run script
    "${name}_daemon_run":
      ensure => present,
      path   => $daemon_run,
      owner  => 'root',
      group  => 'root',
      mode   => 0755,
      source => $use_static_source ? {
        false => undef,
        true  => $source,
      },
      content => $use_static_source ? {
        false => $content,
        true  => undef,
      },
      require => File["${name}_daemon_root"];

    ## The service directory
    "${name}_service_root":
      ensure => $enabled ? {
        false   => absent,
        default => link,
      },
      path    => $service_root,
      target  => $daemon_root,
      require => File["${name}_daemon_run"];

    ## Log directory
    "${name}_log_root":
      ensure => $sv_log ? {
        false   => absent,
        default => directory,
      },
      path    => $log_root,
      owner   => 'root',
      group   => 'root',
      mode    => 0755,
      require => File["${name}_daemon_root"];

    ## Log run script
    "${name}_log_run":
      ensure => $sv_log ? {
        false   => absent,
        default => file,
      },
      path    => $log_run,
      owner   => 'root',
      group   => 'root',
      mode    => 0755,
      content => template( 'runit/service_log.sh.erb' ),
      require => File["${name}_log_root"];

    "${name}_log_dir":
      ensure => $sv_log ? {
        true  => directory,
        false => absent,
      },
      force => true,
      path  => $sv_log_dir,
      owner => 'root',
      group => 'root',
      mode  => 0755;
  }
}

Debug:

	/var/cache/git/repositories/puppet-runit.git
	$VAR1 = [
          'manifests/service.pp'
        ];

	
http://code.sudobangbang.org/puppet-runit.git/HEAD/blob/manifests%2Fservice.pp http://code.sudobangbang.org/puppet-runit.git/heads