Function(
Function {
head: Destructured(
FunctionHeadDestructured {
ellipsis: true,
identifier: None,
arguments: [
FunctionHeadDestructuredArgument {
identifier: "config",
default: None,
},
FunctionHeadDestructuredArgument {
identifier: "lib",
default: None,
},
FunctionHeadDestructuredArgument {
identifier: "pkgs",
default: None,
},
],
},
),
body: With(
With {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 4,
column: 6,
},
end: Position {
line: 4,
column: 9,
},
},
},
),
target: LetIn(
LetIn {
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "cfg",
span: Span {
start: Position {
line: 7,
column: 3,
},
end: Position {
line: 7,
column: 6,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 7,
column: 9,
},
end: Position {
line: 7,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 7,
column: 16,
},
end: Position {
line: 7,
column: 24,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 7,
column: 25,
},
end: Position {
line: 7,
column: 31,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosState",
span: Span {
start: Position {
line: 9,
column: 3,
},
end: Position {
line: 9,
column: 14,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/var/lib/nagios",
span: Span {
start: Position {
line: 9,
column: 18,
},
end: Position {
line: 9,
column: 33,
},
},
},
),
],
span: Span {
start: Position {
line: 9,
column: 17,
},
end: Position {
line: 9,
column: 34,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosLogDir",
span: Span {
start: Position {
line: 10,
column: 3,
},
end: Position {
line: 10,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/var/log/nagios",
span: Span {
start: Position {
line: 10,
column: 19,
},
end: Position {
line: 10,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 10,
column: 18,
},
end: Position {
line: 10,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "urlPath",
span: Span {
start: Position {
line: 11,
column: 3,
},
end: Position {
line: 11,
column: 10,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/nagios",
span: Span {
start: Position {
line: 11,
column: 14,
},
end: Position {
line: 11,
column: 21,
},
},
},
),
],
span: Span {
start: Position {
line: 11,
column: 13,
},
end: Position {
line: 11,
column: 22,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosObjectDefs",
span: Span {
start: Position {
line: 13,
column: 3,
},
end: Position {
line: 13,
column: 19,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 13,
column: 22,
},
end: Position {
line: 13,
column: 25,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "objectDefs",
span: Span {
start: Position {
line: 13,
column: 26,
},
end: Position {
line: 13,
column: 36,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosObjectDefsDir",
span: Span {
start: Position {
line: 15,
column: 3,
},
end: Position {
line: 15,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 15,
column: 25,
},
end: Position {
line: 15,
column: 29,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "runCommand",
span: Span {
start: Position {
line: 15,
column: 30,
},
end: Position {
line: 15,
column: 40,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios-objects",
span: Span {
start: Position {
line: 15,
column: 42,
},
end: Position {
line: 15,
column: 56,
},
},
},
),
],
span: Span {
start: Position {
line: 15,
column: 41,
},
end: Position {
line: 15,
column: 57,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [
Inherit(
BindingInherit {
from: None,
attributes: [
Raw(
PartRaw {
content: "nagiosObjectDefs",
span: Span {
start: Position {
line: 16,
column: 15,
},
end: Position {
line: 16,
column: 31,
},
},
},
),
],
span: Span {
start: Position {
line: 15,
column: 59,
},
end: Position {
line: 16,
column: 32,
},
},
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "preferLocalBuild",
span: Span {
start: Position {
line: 17,
column: 7,
},
end: Position {
line: 17,
column: 23,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 17,
column: 26,
},
end: Position {
line: 17,
column: 30,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 15,
column: 58,
},
end: Position {
line: 18,
column: 6,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "mkdir -p $out; ln -s $nagiosObjectDefs $out/",
span: Span {
start: Position {
line: 18,
column: 8,
},
end: Position {
line: 18,
column: 52,
},
},
},
),
],
span: Span {
start: Position {
line: 18,
column: 7,
},
end: Position {
line: 18,
column: 53,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosCfgFile",
span: Span {
start: Position {
line: 20,
column: 3,
},
end: Position {
line: 20,
column: 16,
},
},
},
),
],
to: LetIn(
LetIn {
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 21,
column: 5,
},
end: Position {
line: 21,
column: 12,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "log_file",
span: Span {
start: Position {
line: 22,
column: 7,
},
end: Position {
line: 22,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosLogDir",
span: Span {
start: Position {
line: 22,
column: 19,
},
end: Position {
line: 22,
column: 31,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/current",
span: Span {
start: Position {
line: 22,
column: 17,
},
end: Position {
line: 22,
column: 40,
},
},
},
),
],
span: Span {
start: Position {
line: 22,
column: 16,
},
end: Position {
line: 22,
column: 41,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "log_archive_path",
span: Span {
start: Position {
line: 23,
column: 7,
},
end: Position {
line: 23,
column: 23,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosLogDir",
span: Span {
start: Position {
line: 23,
column: 27,
},
end: Position {
line: 23,
column: 39,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/archive",
span: Span {
start: Position {
line: 23,
column: 25,
},
end: Position {
line: 23,
column: 48,
},
},
},
),
],
span: Span {
start: Position {
line: 23,
column: 24,
},
end: Position {
line: 23,
column: 49,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "status_file",
span: Span {
start: Position {
line: 24,
column: 7,
},
end: Position {
line: 24,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 24,
column: 22,
},
end: Position {
line: 24,
column: 33,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/status.dat",
span: Span {
start: Position {
line: 24,
column: 20,
},
end: Position {
line: 24,
column: 45,
},
},
},
),
],
span: Span {
start: Position {
line: 24,
column: 19,
},
end: Position {
line: 24,
column: 46,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "object_cache_file",
span: Span {
start: Position {
line: 25,
column: 7,
},
end: Position {
line: 25,
column: 24,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 25,
column: 28,
},
end: Position {
line: 25,
column: 39,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/objects.cache",
span: Span {
start: Position {
line: 25,
column: 26,
},
end: Position {
line: 25,
column: 54,
},
},
},
),
],
span: Span {
start: Position {
line: 25,
column: 25,
},
end: Position {
line: 25,
column: 55,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "temp_file",
span: Span {
start: Position {
line: 26,
column: 7,
},
end: Position {
line: 26,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 26,
column: 20,
},
end: Position {
line: 26,
column: 31,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/nagios.tmp",
span: Span {
start: Position {
line: 26,
column: 18,
},
end: Position {
line: 26,
column: 43,
},
},
},
),
],
span: Span {
start: Position {
line: 26,
column: 17,
},
end: Position {
line: 26,
column: 44,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "lock_file",
span: Span {
start: Position {
line: 27,
column: 7,
},
end: Position {
line: 27,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/run/nagios.lock",
span: Span {
start: Position {
line: 27,
column: 18,
},
end: Position {
line: 27,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 27,
column: 17,
},
end: Position {
line: 27,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "state_retention_file",
span: Span {
start: Position {
line: 28,
column: 7,
},
end: Position {
line: 28,
column: 27,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 28,
column: 31,
},
end: Position {
line: 28,
column: 42,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/retention.dat",
span: Span {
start: Position {
line: 28,
column: 29,
},
end: Position {
line: 28,
column: 57,
},
},
},
),
],
span: Span {
start: Position {
line: 28,
column: 28,
},
end: Position {
line: 28,
column: 58,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "query_socket",
span: Span {
start: Position {
line: 29,
column: 7,
},
end: Position {
line: 29,
column: 19,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 29,
column: 23,
},
end: Position {
line: 29,
column: 34,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/nagios.qh",
span: Span {
start: Position {
line: 29,
column: 21,
},
end: Position {
line: 29,
column: 45,
},
},
},
),
],
span: Span {
start: Position {
line: 29,
column: 20,
},
end: Position {
line: 29,
column: 46,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "check_result_path",
span: Span {
start: Position {
line: 30,
column: 7,
},
end: Position {
line: 30,
column: 24,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 30,
column: 28,
},
end: Position {
line: 30,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 30,
column: 25,
},
end: Position {
line: 30,
column: 41,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "command_file",
span: Span {
start: Position {
line: 31,
column: 7,
},
end: Position {
line: 31,
column: 19,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 31,
column: 23,
},
end: Position {
line: 31,
column: 34,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/nagios.cmd",
span: Span {
start: Position {
line: 31,
column: 21,
},
end: Position {
line: 31,
column: 46,
},
},
},
),
],
span: Span {
start: Position {
line: 31,
column: 20,
},
end: Position {
line: 31,
column: 47,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "cfg_dir",
span: Span {
start: Position {
line: 32,
column: 7,
},
end: Position {
line: 32,
column: 14,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosObjectDefsDir",
span: Span {
start: Position {
line: 32,
column: 18,
},
end: Position {
line: 32,
column: 37,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 32,
column: 15,
},
end: Position {
line: 32,
column: 39,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagios_user",
span: Span {
start: Position {
line: 33,
column: 7,
},
end: Position {
line: 33,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 33,
column: 20,
},
end: Position {
line: 33,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 33,
column: 19,
},
end: Position {
line: 33,
column: 27,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagios_group",
span: Span {
start: Position {
line: 34,
column: 7,
},
end: Position {
line: 34,
column: 19,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 34,
column: 21,
},
end: Position {
line: 34,
column: 27,
},
},
},
),
],
span: Span {
start: Position {
line: 34,
column: 20,
},
end: Position {
line: 34,
column: 28,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "illegal_macro_output_chars",
span: Span {
start: Position {
line: 35,
column: 7,
},
end: Position {
line: 35,
column: 33,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "`~$&|'\"<>",
span: Span {
start: Position {
line: 35,
column: 35,
},
end: Position {
line: 35,
column: 45,
},
},
},
),
],
span: Span {
start: Position {
line: 35,
column: 34,
},
end: Position {
line: 35,
column: 46,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "retain_state_information",
span: Span {
start: Position {
line: 36,
column: 7,
},
end: Position {
line: 36,
column: 31,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "1",
span: Span {
start: Position {
line: 36,
column: 33,
},
end: Position {
line: 36,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 36,
column: 32,
},
end: Position {
line: 36,
column: 35,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 21,
column: 15,
},
end: Position {
line: 37,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "lines",
span: Span {
start: Position {
line: 38,
column: 5,
},
end: Position {
line: 38,
column: 10,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mapAttrsToList",
span: Span {
start: Position {
line: 38,
column: 13,
},
end: Position {
line: 38,
column: 27,
},
},
},
),
arguments: [
Function(
Function {
head: Simple(
FunctionHeadSimple {
identifier: "key",
},
),
body: Function(
Function {
head: Simple(
FunctionHeadSimple {
identifier: "value",
},
),
body: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "key",
span: Span {
start: Position {
line: 38,
column: 44,
},
end: Position {
line: 38,
column: 47,
},
},
},
),
},
),
Raw(
PartRaw {
content: "=",
span: Span {
start: Position {
line: 38,
column: 42,
},
end: Position {
line: 38,
column: 49,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "value",
span: Span {
start: Position {
line: 38,
column: 51,
},
end: Position {
line: 38,
column: 56,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 38,
column: 41,
},
end: Position {
line: 38,
column: 58,
},
},
},
),
span: Span {
start: Position {
line: 38,
column: 34,
},
end: Position {
line: 38,
column: 58,
},
},
},
),
span: Span {
start: Position {
line: 38,
column: 29,
},
end: Position {
line: 38,
column: 58,
},
},
},
),
BinaryOperation(
BinaryOperation {
left: Identifier(
Identifier {
id: "default",
span: Span {
start: Position {
line: 38,
column: 61,
},
end: Position {
line: 38,
column: 68,
},
},
},
),
operator: Update,
right: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 38,
column: 72,
},
end: Position {
line: 38,
column: 75,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "extraConfig",
span: Span {
start: Position {
line: 38,
column: 76,
},
end: Position {
line: 38,
column: 87,
},
},
},
),
],
default: None,
},
),
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "content",
span: Span {
start: Position {
line: 39,
column: 5,
},
end: Position {
line: 39,
column: 12,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "concatStringsSep",
span: Span {
start: Position {
line: 39,
column: 15,
},
end: Position {
line: 39,
column: 31,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "\n",
span: Span {
start: Position {
line: 39,
column: 33,
},
end: Position {
line: 39,
column: 35,
},
},
},
),
],
span: Span {
start: Position {
line: 39,
column: 32,
},
end: Position {
line: 39,
column: 36,
},
},
},
),
Identifier(
Identifier {
id: "lines",
span: Span {
start: Position {
line: 39,
column: 37,
},
end: Position {
line: 39,
column: 42,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "file",
span: Span {
start: Position {
line: 40,
column: 5,
},
end: Position {
line: 40,
column: 9,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 40,
column: 12,
},
end: Position {
line: 40,
column: 16,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "writeText",
span: Span {
start: Position {
line: 40,
column: 17,
},
end: Position {
line: 40,
column: 26,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios.cfg",
span: Span {
start: Position {
line: 40,
column: 28,
},
end: Position {
line: 40,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 40,
column: 27,
},
end: Position {
line: 40,
column: 39,
},
},
},
),
Identifier(
Identifier {
id: "content",
span: Span {
start: Position {
line: 40,
column: 40,
},
end: Position {
line: 40,
column: 47,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "validated",
span: Span {
start: Position {
line: 41,
column: 5,
},
end: Position {
line: 41,
column: 14,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 41,
column: 18,
},
end: Position {
line: 41,
column: 22,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "runCommand",
span: Span {
start: Position {
line: 41,
column: 23,
},
end: Position {
line: 41,
column: 33,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios-checked.cfg",
span: Span {
start: Position {
line: 41,
column: 35,
},
end: Position {
line: 41,
column: 53,
},
},
},
),
],
span: Span {
start: Position {
line: 41,
column: 34,
},
end: Position {
line: 41,
column: 54,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "preferLocalBuild",
span: Span {
start: Position {
line: 41,
column: 56,
},
end: Position {
line: 41,
column: 72,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 41,
column: 73,
},
end: Position {
line: 41,
column: 77,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 41,
column: 55,
},
end: Position {
line: 41,
column: 79,
},
},
},
),
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "cp ",
span: Span {
start: Position {
line: 42,
column: 1,
},
end: Position {
line: 42,
column: 10,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "file",
span: Span {
start: Position {
line: 42,
column: 12,
},
end: Position {
line: 42,
column: 16,
},
},
},
),
},
),
Raw(
PartRaw {
content: " nagios.cfg\n# nagios checks the existence of /var/lib/nagios, but\n# it does not exist in the build sandbox, so we fake it\nmkdir lib\nlib=$(readlink -f lib)\nsed -i s@=",
span: Span {
start: Position {
line: 42,
column: 1,
},
end: Position {
line: 47,
column: 17,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 47,
column: 19,
},
end: Position {
line: 47,
column: 30,
},
},
},
),
},
),
Raw(
PartRaw {
content: "@=$lib@ nagios.cfg\n",
span: Span {
start: Position {
line: 42,
column: 1,
},
end: Position {
line: 48,
column: 7,
},
},
},
),
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 48,
column: 9,
},
end: Position {
line: 48,
column: 13,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 48,
column: 14,
},
end: Position {
line: 48,
column: 20,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/bin/nagios -v nagios.cfg && cp ",
span: Span {
start: Position {
line: 42,
column: 1,
},
end: Position {
line: 48,
column: 53,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "file",
span: Span {
start: Position {
line: 48,
column: 55,
},
end: Position {
line: 48,
column: 59,
},
},
},
),
},
),
Raw(
PartRaw {
content: " $out\n",
span: Span {
start: Position {
line: 42,
column: 1,
},
end: Position {
line: 49,
column: 5,
},
},
},
),
],
span: Span {
start: Position {
line: 41,
column: 80,
},
end: Position {
line: 49,
column: 7,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultCfgFile",
span: Span {
start: Position {
line: 50,
column: 5,
},
end: Position {
line: 50,
column: 19,
},
},
},
),
],
to: IfThenElse(
IfThenElse {
predicate: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 50,
column: 25,
},
end: Position {
line: 50,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "validateConfig",
span: Span {
start: Position {
line: 50,
column: 29,
},
end: Position {
line: 50,
column: 43,
},
},
},
),
],
default: None,
},
),
then: Identifier(
Identifier {
id: "validated",
span: Span {
start: Position {
line: 50,
column: 49,
},
end: Position {
line: 50,
column: 58,
},
},
},
),
else_: Identifier(
Identifier {
id: "file",
span: Span {
start: Position {
line: 50,
column: 64,
},
end: Position {
line: 50,
column: 68,
},
},
},
),
span: Span {
start: Position {
line: 50,
column: 22,
},
end: Position {
line: 50,
column: 68,
},
},
},
),
},
),
],
target: IfThenElse(
IfThenElse {
predicate: BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 52,
column: 6,
},
end: Position {
line: 52,
column: 9,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mainConfigFile",
span: Span {
start: Position {
line: 52,
column: 10,
},
end: Position {
line: 52,
column: 24,
},
},
},
),
],
default: None,
},
),
operator: EqualTo,
right: Identifier(
Identifier {
id: "null",
span: Span {
start: Position {
line: 52,
column: 28,
},
end: Position {
line: 52,
column: 32,
},
},
},
),
},
),
then: Identifier(
Identifier {
id: "defaultCfgFile",
span: Span {
start: Position {
line: 52,
column: 38,
},
end: Position {
line: 52,
column: 52,
},
},
},
),
else_: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 52,
column: 58,
},
end: Position {
line: 52,
column: 61,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mainConfigFile",
span: Span {
start: Position {
line: 52,
column: 62,
},
end: Position {
line: 52,
column: 76,
},
},
},
),
],
default: None,
},
),
span: Span {
start: Position {
line: 52,
column: 3,
},
end: Position {
line: 52,
column: 76,
},
},
},
),
span: Span {
start: Position {
line: 20,
column: 19,
},
end: Position {
line: 52,
column: 76,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "nagiosCGICfgFile",
span: Span {
start: Position {
line: 56,
column: 3,
},
end: Position {
line: 56,
column: 19,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 56,
column: 22,
},
end: Position {
line: 56,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "writeText",
span: Span {
start: Position {
line: 56,
column: 27,
},
end: Position {
line: 56,
column: 36,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios.cgi.conf",
span: Span {
start: Position {
line: 56,
column: 38,
},
end: Position {
line: 56,
column: 53,
},
},
},
),
],
span: Span {
start: Position {
line: 56,
column: 37,
},
end: Position {
line: 56,
column: 54,
},
},
},
),
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "main_config_file=",
span: Span {
start: Position {
line: 58,
column: 1,
},
end: Position {
line: 58,
column: 24,
},
},
},
),
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 58,
column: 26,
},
end: Position {
line: 58,
column: 29,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mainConfigFile",
span: Span {
start: Position {
line: 58,
column: 30,
},
end: Position {
line: 58,
column: 44,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "\nuse_authentication=0\nurl_html_path=",
span: Span {
start: Position {
line: 58,
column: 1,
},
end: Position {
line: 60,
column: 21,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "urlPath",
span: Span {
start: Position {
line: 60,
column: 23,
},
end: Position {
line: 60,
column: 30,
},
},
},
),
},
),
Raw(
PartRaw {
content: "\n",
span: Span {
start: Position {
line: 58,
column: 1,
},
end: Position {
line: 61,
column: 5,
},
},
},
),
],
span: Span {
start: Position {
line: 57,
column: 5,
},
end: Position {
line: 61,
column: 7,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "extraHttpdConfig",
span: Span {
start: Position {
line: 63,
column: 3,
},
end: Position {
line: 63,
column: 19,
},
},
},
),
],
to: IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "ScriptAlias ",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 65,
column: 19,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "urlPath",
span: Span {
start: Position {
line: 65,
column: 21,
},
end: Position {
line: 65,
column: 28,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/cgi-bin ",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 65,
column: 38,
},
},
},
),
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 65,
column: 40,
},
end: Position {
line: 65,
column: 44,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 65,
column: 45,
},
end: Position {
line: 65,
column: 51,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/sbin\n\n\n Options ExecCGI\n Require all granted\n SetEnv NAGIOS_CGI_CONFIG ",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 70,
column: 34,
},
},
},
),
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 70,
column: 36,
},
end: Position {
line: 70,
column: 39,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "cgiConfigFile",
span: Span {
start: Position {
line: 70,
column: 40,
},
end: Position {
line: 70,
column: 53,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "\n\n\nAlias ",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 73,
column: 13,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "urlPath",
span: Span {
start: Position {
line: 73,
column: 15,
},
end: Position {
line: 73,
column: 22,
},
},
},
),
},
),
Raw(
PartRaw {
content: " ",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 73,
column: 24,
},
},
},
),
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 73,
column: 26,
},
end: Position {
line: 73,
column: 30,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 73,
column: 31,
},
end: Position {
line: 73,
column: 37,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/share\n\n\n Options None\n Require all granted\n\n",
span: Span {
start: Position {
line: 65,
column: 1,
},
end: Position {
line: 79,
column: 5,
},
},
},
),
],
span: Span {
start: Position {
line: 64,
column: 5,
},
end: Position {
line: 79,
column: 7,
},
},
},
),
},
),
],
target: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "imports",
span: Span {
start: Position {
line: 83,
column: 3,
},
end: Position {
line: 83,
column: 10,
},
},
},
),
],
to: List(
List {
elements: [
FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkRemovedOptionModule",
span: Span {
start: Position {
line: 84,
column: 6,
},
end: Position {
line: 84,
column: 27,
},
},
},
),
arguments: [
List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 84,
column: 31,
},
end: Position {
line: 84,
column: 39,
},
},
},
),
],
span: Span {
start: Position {
line: 84,
column: 30,
},
end: Position {
line: 84,
column: 40,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 84,
column: 42,
},
end: Position {
line: 84,
column: 48,
},
},
},
),
],
span: Span {
start: Position {
line: 84,
column: 41,
},
end: Position {
line: 84,
column: 49,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "urlPath",
span: Span {
start: Position {
line: 84,
column: 51,
},
end: Position {
line: 84,
column: 58,
},
},
},
),
],
span: Span {
start: Position {
line: 84,
column: 50,
},
end: Position {
line: 84,
column: 59,
},
},
},
),
],
span: Span {
start: Position {
line: 84,
column: 28,
},
end: Position {
line: 84,
column: 61,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "The urlPath option has been removed as it is hard coded to /nagios in the nagios package.",
span: Span {
start: Position {
line: 84,
column: 63,
},
end: Position {
line: 84,
column: 152,
},
},
},
),
],
span: Span {
start: Position {
line: 84,
column: 62,
},
end: Position {
line: 84,
column: 153,
},
},
},
),
],
},
),
],
span: Span {
start: Position {
line: 83,
column: 13,
},
end: Position {
line: 85,
column: 4,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "meta",
span: Span {
start: Position {
line: 87,
column: 3,
},
end: Position {
line: 87,
column: 7,
},
},
},
),
Raw(
PartRaw {
content: "maintainers",
span: Span {
start: Position {
line: 87,
column: 8,
},
end: Position {
line: 87,
column: 19,
},
},
},
),
],
to: With(
With {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 87,
column: 27,
},
end: Position {
line: 87,
column: 30,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "maintainers",
span: Span {
start: Position {
line: 87,
column: 31,
},
end: Position {
line: 87,
column: 42,
},
},
},
),
],
default: None,
},
),
target: List(
List {
elements: [
Identifier(
Identifier {
id: "symphorien",
span: Span {
start: Position {
line: 87,
column: 46,
},
end: Position {
line: 87,
column: 56,
},
},
},
),
],
span: Span {
start: Position {
line: 87,
column: 44,
},
end: Position {
line: 87,
column: 58,
},
},
},
),
span: Span {
start: Position {
line: 87,
column: 22,
},
end: Position {
line: 87,
column: 58,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "options",
span: Span {
start: Position {
line: 89,
column: 3,
},
end: Position {
line: 89,
column: 10,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 90,
column: 5,
},
end: Position {
line: 90,
column: 13,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 90,
column: 14,
},
end: Position {
line: 90,
column: 20,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 91,
column: 7,
},
end: Position {
line: 91,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkEnableOption",
span: Span {
start: Position {
line: 91,
column: 16,
},
end: Position {
line: 91,
column: 30,
},
},
},
),
arguments: [
FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 91,
column: 32,
},
end: Position {
line: 91,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 91,
column: 36,
},
end: Position {
line: 91,
column: 41,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "[Nagios](http://www.nagios.org/) to monitor your system or network.",
span: Span {
start: Position {
line: 91,
column: 44,
},
end: Position {
line: 91,
column: 111,
},
},
},
),
],
span: Span {
start: Position {
line: 91,
column: 42,
},
end: Position {
line: 91,
column: 113,
},
},
},
),
],
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "objectDefs",
span: Span {
start: Position {
line: 93,
column: 7,
},
end: Position {
line: 93,
column: 17,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 93,
column: 20,
},
end: Position {
line: 93,
column: 28,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 94,
column: 9,
},
end: Position {
line: 94,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 94,
column: 23,
},
end: Position {
line: 94,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 94,
column: 27,
},
end: Position {
line: 94,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "A list of Nagios object configuration files that must define\nthe hosts, host groups, services and contacts for the\nnetwork that you want Nagios to monitor.\n",
span: Span {
start: Position {
line: 95,
column: 1,
},
end: Position {
line: 98,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 94,
column: 33,
},
end: Position {
line: 98,
column: 11,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 99,
column: 9,
},
end: Position {
line: 99,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 99,
column: 16,
},
end: Position {
line: 99,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "listOf",
span: Span {
start: Position {
line: 99,
column: 22,
},
end: Position {
line: 99,
column: 28,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 99,
column: 29,
},
end: Position {
line: 99,
column: 34,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "path",
span: Span {
start: Position {
line: 99,
column: 35,
},
end: Position {
line: 99,
column: 39,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 100,
column: 9,
},
end: Position {
line: 100,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 100,
column: 19,
},
end: Position {
line: 100,
column: 36,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "[ ./objects.cfg ]",
span: Span {
start: Position {
line: 100,
column: 38,
},
end: Position {
line: 100,
column: 55,
},
},
},
),
],
span: Span {
start: Position {
line: 100,
column: 37,
},
end: Position {
line: 100,
column: 56,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 93,
column: 29,
},
end: Position {
line: 101,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "plugins",
span: Span {
start: Position {
line: 103,
column: 7,
},
end: Position {
line: 103,
column: 14,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 103,
column: 17,
},
end: Position {
line: 103,
column: 25,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 104,
column: 9,
},
end: Position {
line: 104,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 104,
column: 16,
},
end: Position {
line: 104,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "listOf",
span: Span {
start: Position {
line: 104,
column: 22,
},
end: Position {
line: 104,
column: 28,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 104,
column: 29,
},
end: Position {
line: 104,
column: 34,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 104,
column: 35,
},
end: Position {
line: 104,
column: 42,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 105,
column: 9,
},
end: Position {
line: 105,
column: 16,
},
},
},
),
],
to: With(
With {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 105,
column: 24,
},
end: Position {
line: 105,
column: 28,
},
},
},
),
target: List(
List {
elements: [
Identifier(
Identifier {
id: "monitoring-plugins",
span: Span {
start: Position {
line: 105,
column: 32,
},
end: Position {
line: 105,
column: 50,
},
},
},
),
Identifier(
Identifier {
id: "msmtp",
span: Span {
start: Position {
line: 105,
column: 51,
},
end: Position {
line: 105,
column: 56,
},
},
},
),
Identifier(
Identifier {
id: "mailutils",
span: Span {
start: Position {
line: 105,
column: 57,
},
end: Position {
line: 105,
column: 66,
},
},
},
),
],
span: Span {
start: Position {
line: 105,
column: 30,
},
end: Position {
line: 105,
column: 68,
},
},
},
),
span: Span {
start: Position {
line: 105,
column: 19,
},
end: Position {
line: 105,
column: 68,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultText",
span: Span {
start: Position {
line: 106,
column: 9,
},
end: Position {
line: 106,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 106,
column: 23,
},
end: Position {
line: 106,
column: 40,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]",
span: Span {
start: Position {
line: 106,
column: 42,
},
end: Position {
line: 106,
column: 93,
},
},
},
),
],
span: Span {
start: Position {
line: 106,
column: 41,
},
end: Position {
line: 106,
column: 94,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 107,
column: 9,
},
end: Position {
line: 107,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 107,
column: 23,
},
end: Position {
line: 107,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 107,
column: 27,
},
end: Position {
line: 107,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Packages to be added to the Nagios {env}`PATH`.\nTypically used to add plugins, but can be anything.\n",
span: Span {
start: Position {
line: 108,
column: 1,
},
end: Position {
line: 110,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 107,
column: 33,
},
end: Position {
line: 110,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 103,
column: 26,
},
end: Position {
line: 111,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "mainConfigFile",
span: Span {
start: Position {
line: 113,
column: 7,
},
end: Position {
line: 113,
column: 21,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 113,
column: 24,
},
end: Position {
line: 113,
column: 32,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 114,
column: 9,
},
end: Position {
line: 114,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 114,
column: 16,
},
end: Position {
line: 114,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nullOr",
span: Span {
start: Position {
line: 114,
column: 22,
},
end: Position {
line: 114,
column: 28,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 114,
column: 29,
},
end: Position {
line: 114,
column: 34,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 114,
column: 35,
},
end: Position {
line: 114,
column: 42,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 115,
column: 9,
},
end: Position {
line: 115,
column: 16,
},
},
},
),
],
to: Identifier(
Identifier {
id: "null",
span: Span {
start: Position {
line: 115,
column: 19,
},
end: Position {
line: 115,
column: 23,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 116,
column: 9,
},
end: Position {
line: 116,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 116,
column: 23,
},
end: Position {
line: 116,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 116,
column: 27,
},
end: Position {
line: 116,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "If non-null, overrides the main configuration file of Nagios.\n",
span: Span {
start: Position {
line: 117,
column: 1,
},
end: Position {
line: 118,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 116,
column: 33,
},
end: Position {
line: 118,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 113,
column: 33,
},
end: Position {
line: 119,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "extraConfig",
span: Span {
start: Position {
line: 121,
column: 7,
},
end: Position {
line: 121,
column: 18,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 121,
column: 21,
},
end: Position {
line: 121,
column: 29,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 122,
column: 9,
},
end: Position {
line: 122,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 122,
column: 16,
},
end: Position {
line: 122,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "attrsOf",
span: Span {
start: Position {
line: 122,
column: 22,
},
end: Position {
line: 122,
column: 29,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 122,
column: 30,
},
end: Position {
line: 122,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "str",
span: Span {
start: Position {
line: 122,
column: 36,
},
end: Position {
line: 122,
column: 39,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 123,
column: 9,
},
end: Position {
line: 123,
column: 16,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "debug_level",
span: Span {
start: Position {
line: 124,
column: 11,
},
end: Position {
line: 124,
column: 22,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "-1",
span: Span {
start: Position {
line: 124,
column: 26,
},
end: Position {
line: 124,
column: 28,
},
},
},
),
],
span: Span {
start: Position {
line: 124,
column: 25,
},
end: Position {
line: 124,
column: 29,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "debug_file",
span: Span {
start: Position {
line: 125,
column: 11,
},
end: Position {
line: 125,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/var/log/nagios/debug.log",
span: Span {
start: Position {
line: 125,
column: 25,
},
end: Position {
line: 125,
column: 50,
},
},
},
),
],
span: Span {
start: Position {
line: 125,
column: 24,
},
end: Position {
line: 125,
column: 51,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 123,
column: 19,
},
end: Position {
line: 126,
column: 10,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 127,
column: 9,
},
end: Position {
line: 127,
column: 16,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 127,
column: 19,
},
end: Position {
line: 127,
column: 21,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 128,
column: 9,
},
end: Position {
line: 128,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 128,
column: 23,
},
end: Position {
line: 128,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 128,
column: 27,
},
end: Position {
line: 128,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "Configuration to add to /etc/nagios.cfg",
span: Span {
start: Position {
line: 128,
column: 34,
},
end: Position {
line: 128,
column: 73,
},
},
},
),
],
span: Span {
start: Position {
line: 128,
column: 33,
},
end: Position {
line: 128,
column: 74,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 121,
column: 30,
},
end: Position {
line: 129,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "validateConfig",
span: Span {
start: Position {
line: 131,
column: 7,
},
end: Position {
line: 131,
column: 21,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 131,
column: 24,
},
end: Position {
line: 131,
column: 32,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 132,
column: 9,
},
end: Position {
line: 132,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 132,
column: 16,
},
end: Position {
line: 132,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "bool",
span: Span {
start: Position {
line: 132,
column: 22,
},
end: Position {
line: 132,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 133,
column: 9,
},
end: Position {
line: 133,
column: 16,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 133,
column: 19,
},
end: Position {
line: 133,
column: 23,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "stdenv",
span: Span {
start: Position {
line: 133,
column: 24,
},
end: Position {
line: 133,
column: 30,
},
},
},
),
Raw(
PartRaw {
content: "hostPlatform",
span: Span {
start: Position {
line: 133,
column: 31,
},
end: Position {
line: 133,
column: 43,
},
},
},
),
],
default: None,
},
),
operator: EqualTo,
right: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 133,
column: 47,
},
end: Position {
line: 133,
column: 51,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "stdenv",
span: Span {
start: Position {
line: 133,
column: 52,
},
end: Position {
line: 133,
column: 58,
},
},
},
),
Raw(
PartRaw {
content: "buildPlatform",
span: Span {
start: Position {
line: 133,
column: 59,
},
end: Position {
line: 133,
column: 72,
},
},
},
),
],
default: None,
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultText",
span: Span {
start: Position {
line: 134,
column: 9,
},
end: Position {
line: 134,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 134,
column: 23,
},
end: Position {
line: 134,
column: 40,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform",
span: Span {
start: Position {
line: 134,
column: 42,
},
end: Position {
line: 134,
column: 95,
},
},
},
),
],
span: Span {
start: Position {
line: 134,
column: 41,
},
end: Position {
line: 134,
column: 96,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 135,
column: 9,
},
end: Position {
line: 135,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 135,
column: 23,
},
end: Position {
line: 135,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 135,
column: 27,
},
end: Position {
line: 135,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "if true, the syntax of the nagios configuration file is checked at build time",
span: Span {
start: Position {
line: 135,
column: 34,
},
end: Position {
line: 135,
column: 111,
},
},
},
),
],
span: Span {
start: Position {
line: 135,
column: 33,
},
end: Position {
line: 135,
column: 112,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 131,
column: 33,
},
end: Position {
line: 136,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "cgiConfigFile",
span: Span {
start: Position {
line: 138,
column: 7,
},
end: Position {
line: 138,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 138,
column: 23,
},
end: Position {
line: 138,
column: 31,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 139,
column: 9,
},
end: Position {
line: 139,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 139,
column: 16,
},
end: Position {
line: 139,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 139,
column: 22,
},
end: Position {
line: 139,
column: 29,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 140,
column: 9,
},
end: Position {
line: 140,
column: 16,
},
},
},
),
],
to: Identifier(
Identifier {
id: "nagiosCGICfgFile",
span: Span {
start: Position {
line: 140,
column: 19,
},
end: Position {
line: 140,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultText",
span: Span {
start: Position {
line: 141,
column: 9,
},
end: Position {
line: 141,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 141,
column: 23,
},
end: Position {
line: 141,
column: 40,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagiosCGICfgFile",
span: Span {
start: Position {
line: 141,
column: 42,
},
end: Position {
line: 141,
column: 58,
},
},
},
),
],
span: Span {
start: Position {
line: 141,
column: 41,
},
end: Position {
line: 141,
column: 59,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 142,
column: 9,
},
end: Position {
line: 142,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 142,
column: 23,
},
end: Position {
line: 142,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 142,
column: 27,
},
end: Position {
line: 142,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Derivation for the configuration file of Nagios CGI scripts\nthat can be used in web servers for running the Nagios web interface.\n",
span: Span {
start: Position {
line: 143,
column: 1,
},
end: Position {
line: 145,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 142,
column: 33,
},
end: Position {
line: 145,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 138,
column: 32,
},
end: Position {
line: 146,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "enableWebInterface",
span: Span {
start: Position {
line: 148,
column: 7,
},
end: Position {
line: 148,
column: 25,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 148,
column: 28,
},
end: Position {
line: 148,
column: 36,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 149,
column: 9,
},
end: Position {
line: 149,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 149,
column: 16,
},
end: Position {
line: 149,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "bool",
span: Span {
start: Position {
line: 149,
column: 22,
},
end: Position {
line: 149,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 150,
column: 9,
},
end: Position {
line: 150,
column: 16,
},
},
},
),
],
to: Identifier(
Identifier {
id: "false",
span: Span {
start: Position {
line: 150,
column: 19,
},
end: Position {
line: 150,
column: 24,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 151,
column: 9,
},
end: Position {
line: 151,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 151,
column: 23,
},
end: Position {
line: 151,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 151,
column: 27,
},
end: Position {
line: 151,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Whether to enable the Nagios web interface. You should also\nenable Apache ({option}`services.httpd.enable`).\n",
span: Span {
start: Position {
line: 152,
column: 1,
},
end: Position {
line: 154,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 151,
column: 33,
},
end: Position {
line: 154,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 148,
column: 37,
},
end: Position {
line: 155,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "virtualHost",
span: Span {
start: Position {
line: 157,
column: 7,
},
end: Position {
line: 157,
column: 18,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 157,
column: 21,
},
end: Position {
line: 157,
column: 29,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 158,
column: 9,
},
end: Position {
line: 158,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 158,
column: 16,
},
end: Position {
line: 158,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "submodule",
span: Span {
start: Position {
line: 158,
column: 22,
},
end: Position {
line: 158,
column: 31,
},
},
},
),
],
default: None,
},
),
arguments: [
FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "import",
span: Span {
start: Position {
line: 158,
column: 33,
},
end: Position {
line: 158,
column: 39,
},
},
},
),
arguments: [
Path(
Path {
parts: [
Raw(
PartRaw {
content: "../web-servers/apache-httpd/vhost-options.nix",
span: Span {
start: Position {
line: 158,
column: 40,
},
end: Position {
line: 158,
column: 85,
},
},
},
),
],
span: Span {
start: Position {
line: 158,
column: 40,
},
end: Position {
line: 158,
column: 85,
},
},
},
),
],
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 159,
column: 9,
},
end: Position {
line: 159,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 159,
column: 19,
},
end: Position {
line: 159,
column: 36,
},
},
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "{ hostName = \"example.org\";\n adminAddr = \"webmaster@example.org\";\n enableSSL = true;\n sslServerCert = \"/var/lib/acme/example.org/full.pem\";\n sslServerKey = \"/var/lib/acme/example.org/key.pem\";\n}\n",
span: Span {
start: Position {
line: 160,
column: 1,
},
end: Position {
line: 166,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 159,
column: 37,
},
end: Position {
line: 166,
column: 11,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 167,
column: 9,
},
end: Position {
line: 167,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 167,
column: 23,
},
end: Position {
line: 167,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 167,
column: 27,
},
end: Position {
line: 167,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.\nSee [](#opt-services.httpd.virtualHosts) for further information.\n",
span: Span {
start: Position {
line: 168,
column: 1,
},
end: Position {
line: 170,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 167,
column: 33,
},
end: Position {
line: 170,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 157,
column: 30,
},
end: Position {
line: 171,
column: 8,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 90,
column: 23,
},
end: Position {
line: 172,
column: 6,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 89,
column: 13,
},
end: Position {
line: 173,
column: 4,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "config",
span: Span {
start: Position {
line: 176,
column: 3,
},
end: Position {
line: 176,
column: 9,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkIf",
span: Span {
start: Position {
line: 176,
column: 12,
},
end: Position {
line: 176,
column: 16,
},
},
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 176,
column: 17,
},
end: Position {
line: 176,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 176,
column: 21,
},
end: Position {
line: 176,
column: 27,
},
},
},
),
],
default: None,
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 177,
column: 5,
},
end: Position {
line: 177,
column: 10,
},
},
},
),
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 177,
column: 11,
},
end: Position {
line: 177,
column: 16,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 177,
column: 17,
},
end: Position {
line: 177,
column: 23,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 178,
column: 7,
},
end: Position {
line: 178,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "Nagios user ",
span: Span {
start: Position {
line: 178,
column: 22,
},
end: Position {
line: 178,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 178,
column: 21,
},
end: Position {
line: 178,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "uid",
span: Span {
start: Position {
line: 179,
column: 7,
},
end: Position {
line: 179,
column: 10,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 179,
column: 21,
},
end: Position {
line: 179,
column: 27,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "ids",
span: Span {
start: Position {
line: 179,
column: 28,
},
end: Position {
line: 179,
column: 31,
},
},
},
),
Raw(
PartRaw {
content: "uids",
span: Span {
start: Position {
line: 179,
column: 32,
},
end: Position {
line: 179,
column: 36,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 179,
column: 37,
},
end: Position {
line: 179,
column: 43,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "home",
span: Span {
start: Position {
line: 180,
column: 7,
},
end: Position {
line: 180,
column: 11,
},
},
},
),
],
to: Identifier(
Identifier {
id: "nagiosState",
span: Span {
start: Position {
line: 180,
column: 21,
},
end: Position {
line: 180,
column: 32,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 181,
column: 7,
},
end: Position {
line: 181,
column: 12,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 181,
column: 22,
},
end: Position {
line: 181,
column: 28,
},
},
},
),
],
span: Span {
start: Position {
line: 181,
column: 21,
},
end: Position {
line: 181,
column: 29,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 177,
column: 26,
},
end: Position {
line: 182,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 184,
column: 5,
},
end: Position {
line: 184,
column: 10,
},
},
},
),
Raw(
PartRaw {
content: "groups",
span: Span {
start: Position {
line: 184,
column: 11,
},
end: Position {
line: 184,
column: 17,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 184,
column: 18,
},
end: Position {
line: 184,
column: 24,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 184,
column: 27,
},
end: Position {
line: 184,
column: 30,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 188,
column: 5,
},
end: Position {
line: 188,
column: 16,
},
},
},
),
Raw(
PartRaw {
content: "etc",
span: Span {
start: Position {
line: 188,
column: 17,
},
end: Position {
line: 188,
column: 20,
},
},
},
),
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios.cfg",
span: Span {
start: Position {
line: 188,
column: 22,
},
end: Position {
line: 188,
column: 32,
},
},
},
),
],
span: Span {
start: Position {
line: 188,
column: 21,
},
end: Position {
line: 188,
column: 33,
},
},
},
),
},
),
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 188,
column: 34,
},
end: Position {
line: 188,
column: 40,
},
},
},
),
],
to: Identifier(
Identifier {
id: "nagiosCfgFile",
span: Span {
start: Position {
line: 188,
column: 43,
},
end: Position {
line: 188,
column: 56,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 190,
column: 5,
},
end: Position {
line: 190,
column: 16,
},
},
},
),
Raw(
PartRaw {
content: "systemPackages",
span: Span {
start: Position {
line: 190,
column: 17,
},
end: Position {
line: 190,
column: 31,
},
},
},
),
],
to: List(
List {
elements: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 190,
column: 36,
},
end: Position {
line: 190,
column: 40,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 190,
column: 41,
},
end: Position {
line: 190,
column: 47,
},
},
},
),
],
default: None,
},
),
],
span: Span {
start: Position {
line: 190,
column: 34,
},
end: Position {
line: 190,
column: 49,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "systemd",
span: Span {
start: Position {
line: 191,
column: 5,
},
end: Position {
line: 191,
column: 12,
},
},
},
),
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 191,
column: 13,
},
end: Position {
line: 191,
column: 21,
},
},
},
),
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 191,
column: 22,
},
end: Position {
line: 191,
column: 28,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 192,
column: 7,
},
end: Position {
line: 192,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "Nagios monitoring daemon",
span: Span {
start: Position {
line: 192,
column: 22,
},
end: Position {
line: 192,
column: 46,
},
},
},
),
],
span: Span {
start: Position {
line: 192,
column: 21,
},
end: Position {
line: 192,
column: 47,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "path",
span: Span {
start: Position {
line: 193,
column: 7,
},
end: Position {
line: 193,
column: 11,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: List(
List {
elements: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 193,
column: 20,
},
end: Position {
line: 193,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 193,
column: 25,
},
end: Position {
line: 193,
column: 31,
},
},
},
),
],
default: None,
},
),
],
span: Span {
start: Position {
line: 193,
column: 18,
},
end: Position {
line: 193,
column: 33,
},
},
},
),
operator: Concatenation,
right: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 193,
column: 37,
},
end: Position {
line: 193,
column: 40,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "plugins",
span: Span {
start: Position {
line: 193,
column: 41,
},
end: Position {
line: 193,
column: 48,
},
},
},
),
],
default: None,
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "wantedBy",
span: Span {
start: Position {
line: 194,
column: 7,
},
end: Position {
line: 194,
column: 15,
},
},
},
),
],
to: List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "multi-user.target",
span: Span {
start: Position {
line: 194,
column: 21,
},
end: Position {
line: 194,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 194,
column: 20,
},
end: Position {
line: 194,
column: 39,
},
},
},
),
],
span: Span {
start: Position {
line: 194,
column: 18,
},
end: Position {
line: 194,
column: 41,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "after",
span: Span {
start: Position {
line: 195,
column: 7,
},
end: Position {
line: 195,
column: 12,
},
},
},
),
],
to: List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "network.target",
span: Span {
start: Position {
line: 195,
column: 21,
},
end: Position {
line: 195,
column: 35,
},
},
},
),
],
span: Span {
start: Position {
line: 195,
column: 20,
},
end: Position {
line: 195,
column: 36,
},
},
},
),
],
span: Span {
start: Position {
line: 195,
column: 18,
},
end: Position {
line: 195,
column: 38,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "restartTriggers",
span: Span {
start: Position {
line: 196,
column: 7,
},
end: Position {
line: 196,
column: 22,
},
},
},
),
],
to: List(
List {
elements: [
Identifier(
Identifier {
id: "nagiosCfgFile",
span: Span {
start: Position {
line: 196,
column: 27,
},
end: Position {
line: 196,
column: 40,
},
},
},
),
],
span: Span {
start: Position {
line: 196,
column: 25,
},
end: Position {
line: 196,
column: 42,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "serviceConfig",
span: Span {
start: Position {
line: 198,
column: 7,
},
end: Position {
line: 198,
column: 20,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "User",
span: Span {
start: Position {
line: 199,
column: 9,
},
end: Position {
line: 199,
column: 13,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 199,
column: 17,
},
end: Position {
line: 199,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 199,
column: 16,
},
end: Position {
line: 199,
column: 24,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "Group",
span: Span {
start: Position {
line: 200,
column: 9,
},
end: Position {
line: 200,
column: 14,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 200,
column: 18,
},
end: Position {
line: 200,
column: 24,
},
},
},
),
],
span: Span {
start: Position {
line: 200,
column: 17,
},
end: Position {
line: 200,
column: 25,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "Restart",
span: Span {
start: Position {
line: 201,
column: 9,
},
end: Position {
line: 201,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "always",
span: Span {
start: Position {
line: 201,
column: 20,
},
end: Position {
line: 201,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 201,
column: 19,
},
end: Position {
line: 201,
column: 27,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "RestartSec",
span: Span {
start: Position {
line: 202,
column: 9,
},
end: Position {
line: 202,
column: 19,
},
},
},
),
],
to: Integer(
Integer {
value: "2",
span: Span {
start: Position {
line: 202,
column: 22,
},
end: Position {
line: 202,
column: 23,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "LogsDirectory",
span: Span {
start: Position {
line: 203,
column: 9,
},
end: Position {
line: 203,
column: 22,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 203,
column: 26,
},
end: Position {
line: 203,
column: 32,
},
},
},
),
],
span: Span {
start: Position {
line: 203,
column: 25,
},
end: Position {
line: 203,
column: 33,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "StateDirectory",
span: Span {
start: Position {
line: 204,
column: 9,
},
end: Position {
line: 204,
column: 23,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 204,
column: 27,
},
end: Position {
line: 204,
column: 33,
},
},
},
),
],
span: Span {
start: Position {
line: 204,
column: 26,
},
end: Position {
line: 204,
column: 34,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ExecStart",
span: Span {
start: Position {
line: 205,
column: 9,
},
end: Position {
line: 205,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 205,
column: 24,
},
end: Position {
line: 205,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nagios",
span: Span {
start: Position {
line: 205,
column: 29,
},
end: Position {
line: 205,
column: 35,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/bin/nagios /etc/nagios.cfg",
span: Span {
start: Position {
line: 205,
column: 22,
},
end: Position {
line: 205,
column: 63,
},
},
},
),
],
span: Span {
start: Position {
line: 205,
column: 21,
},
end: Position {
line: 205,
column: 64,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 198,
column: 23,
},
end: Position {
line: 206,
column: 8,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 191,
column: 31,
},
end: Position {
line: 207,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 209,
column: 5,
},
end: Position {
line: 209,
column: 13,
},
},
},
),
Raw(
PartRaw {
content: "httpd",
span: Span {
start: Position {
line: 209,
column: 14,
},
end: Position {
line: 209,
column: 19,
},
},
},
),
Raw(
PartRaw {
content: "virtualHosts",
span: Span {
start: Position {
line: 209,
column: 20,
},
end: Position {
line: 209,
column: 32,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "optionalAttrs",
span: Span {
start: Position {
line: 209,
column: 35,
},
end: Position {
line: 209,
column: 48,
},
},
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 209,
column: 49,
},
end: Position {
line: 209,
column: 52,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "enableWebInterface",
span: Span {
start: Position {
line: 209,
column: 53,
},
end: Position {
line: 209,
column: 71,
},
},
},
),
],
default: None,
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 210,
column: 9,
},
end: Position {
line: 210,
column: 12,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "virtualHost",
span: Span {
start: Position {
line: 210,
column: 13,
},
end: Position {
line: 210,
column: 24,
},
},
},
),
Raw(
PartRaw {
content: "hostName",
span: Span {
start: Position {
line: 210,
column: 25,
},
end: Position {
line: 210,
column: 33,
},
},
},
),
],
default: None,
},
),
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkMerge",
span: Span {
start: Position {
line: 210,
column: 37,
},
end: Position {
line: 210,
column: 44,
},
},
},
),
arguments: [
List(
List {
elements: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 210,
column: 47,
},
end: Position {
line: 210,
column: 50,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "virtualHost",
span: Span {
start: Position {
line: 210,
column: 51,
},
end: Position {
line: 210,
column: 62,
},
},
},
),
],
default: None,
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "extraConfig",
span: Span {
start: Position {
line: 210,
column: 65,
},
end: Position {
line: 210,
column: 76,
},
},
},
),
],
to: Identifier(
Identifier {
id: "extraHttpdConfig",
span: Span {
start: Position {
line: 210,
column: 79,
},
end: Position {
line: 210,
column: 95,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 210,
column: 63,
},
end: Position {
line: 210,
column: 98,
},
},
},
),
],
span: Span {
start: Position {
line: 210,
column: 45,
},
end: Position {
line: 210,
column: 100,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 209,
column: 72,
},
end: Position {
line: 211,
column: 6,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 176,
column: 28,
},
end: Position {
line: 212,
column: 4,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 82,
column: 1,
},
end: Position {
line: 213,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 6,
column: 1,
},
end: Position {
line: 213,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 4,
column: 1,
},
end: Position {
line: 213,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 2,
column: 1,
},
end: Position {
line: 213,
column: 2,
},
},
},
)