Method: Chef::Provider::Service::Openbsd#enable_service

Defined in:
lib/chef/provider/service/openbsd.rb

#enable_serviceObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/chef/provider/service/openbsd.rb', line 77

def enable_service
  unless is_enabled?
    if is_builtin?
      if is_enabled_by_default?
        update_rcl rc_conf_local.sub(/^#{Regexp.escape(builtin_service_enable_variable_name)}=.*/, "")
      else
        # add line with blank string, which means enable
        update_rcl rc_conf_local + "\n" + "#{builtin_service_enable_variable_name}=\"\"\n"
      end
    else
      # add to pkg_scripts, most recent addition goes last
      old_services_list = rc_conf_local.match(/^pkg_scripts="(.*)"/)
      old_services_list = old_services_list ? old_services_list[1].split(" ") : []
      new_services_list = old_services_list + [new_resource.service_name]
      if /^pkg_scripts="(.*)"/.match?(rc_conf_local)
        new_rcl = rc_conf_local.sub(/^pkg_scripts="(.*)"/, "pkg_scripts=\"#{new_services_list.join(" ")}\"")
      else
        new_rcl = rc_conf_local + "\n" + "pkg_scripts=\"#{new_services_list.join(" ")}\"\n"
      end
      update_rcl new_rcl
    end
  end
end