Function(
Function {
head: Destructured(
FunctionHeadDestructured {
ellipsis: true,
identifier: None,
arguments: [
FunctionHeadDestructuredArgument {
identifier: "config",
default: None,
},
FunctionHeadDestructuredArgument {
identifier: "pkgs",
default: None,
},
FunctionHeadDestructuredArgument {
identifier: "lib",
default: None,
},
],
},
),
body: With(
With {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 3,
column: 6,
},
end: Position {
line: 3,
column: 9,
},
},
},
),
target: LetIn(
LetIn {
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "cfg",
span: Span {
start: Position {
line: 6,
column: 3,
},
end: Position {
line: 6,
column: 6,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 6,
column: 9,
},
end: Position {
line: 6,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 6,
column: 16,
},
end: Position {
line: 6,
column: 24,
},
},
},
),
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 6,
column: 25,
},
end: Position {
line: 6,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "wrappedPlugins",
span: Span {
start: Position {
line: 8,
column: 3,
},
end: Position {
line: 8,
column: 17,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 8,
column: 20,
},
end: Position {
line: 8,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "runCommand",
span: Span {
start: Position {
line: 8,
column: 25,
},
end: Position {
line: 8,
column: 35,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "wrapped-plugins",
span: Span {
start: Position {
line: 8,
column: 37,
},
end: Position {
line: 8,
column: 52,
},
},
},
),
],
span: Span {
start: Position {
line: 8,
column: 36,
},
end: Position {
line: 8,
column: 53,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "preferLocalBuild",
span: Span {
start: Position {
line: 8,
column: 56,
},
end: Position {
line: 8,
column: 72,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 8,
column: 75,
},
end: Position {
line: 8,
column: 79,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 8,
column: 54,
},
end: Position {
line: 8,
column: 82,
},
},
},
),
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "mkdir -p $out/libexec/netdata/plugins.d\nln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin\nln -s /run/wrappers/bin/cgroup-network $out/libexec/netdata/plugins.d/cgroup-network\nln -s /run/wrappers/bin/perf.plugin $out/libexec/netdata/plugins.d/perf.plugin\nln -s /run/wrappers/bin/slabinfo.plugin $out/libexec/netdata/plugins.d/slabinfo.plugin\nln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin\n",
span: Span {
start: Position {
line: 9,
column: 1,
},
end: Position {
line: 15,
column: 3,
},
},
},
),
],
span: Span {
start: Position {
line: 8,
column: 83,
},
end: Position {
line: 15,
column: 5,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "plugins",
span: Span {
start: Position {
line: 17,
column: 3,
},
end: Position {
line: 17,
column: 10,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: List(
List {
elements: [
String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 18,
column: 8,
},
end: Position {
line: 18,
column: 11,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 18,
column: 12,
},
end: Position {
line: 18,
column: 19,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d",
span: Span {
start: Position {
line: 18,
column: 6,
},
end: Position {
line: 18,
column: 46,
},
},
},
),
],
span: Span {
start: Position {
line: 18,
column: 5,
},
end: Position {
line: 18,
column: 47,
},
},
},
),
String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "wrappedPlugins",
span: Span {
start: Position {
line: 19,
column: 8,
},
end: Position {
line: 19,
column: 22,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d",
span: Span {
start: Position {
line: 19,
column: 6,
},
end: Position {
line: 19,
column: 49,
},
},
},
),
],
span: Span {
start: Position {
line: 19,
column: 5,
},
end: Position {
line: 19,
column: 50,
},
},
},
),
],
span: Span {
start: Position {
line: 17,
column: 13,
},
end: Position {
line: 20,
column: 4,
},
},
},
),
operator: Concatenation,
right: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 20,
column: 8,
},
end: Position {
line: 20,
column: 11,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "extraPluginPaths",
span: Span {
start: Position {
line: 20,
column: 12,
},
end: Position {
line: 20,
column: 28,
},
},
},
),
],
default: None,
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "configDirectory",
span: Span {
start: Position {
line: 22,
column: 3,
},
end: Position {
line: 22,
column: 18,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 22,
column: 21,
},
end: Position {
line: 22,
column: 25,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "runCommand",
span: Span {
start: Position {
line: 22,
column: 26,
},
end: Position {
line: 22,
column: 36,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata-config-d",
span: Span {
start: Position {
line: 22,
column: 38,
},
end: Position {
line: 22,
column: 54,
},
},
},
),
],
span: Span {
start: Position {
line: 22,
column: 37,
},
end: Position {
line: 22,
column: 55,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 22,
column: 56,
},
end: Position {
line: 22,
column: 59,
},
},
},
),
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "mkdir $out\n",
span: Span {
start: Position {
line: 23,
column: 1,
},
end: Position {
line: 24,
column: 5,
},
},
},
),
Interpolation(
PartInterpolation {
expression: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "concatStringsSep",
span: Span {
start: Position {
line: 24,
column: 7,
},
end: Position {
line: 24,
column: 23,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "\n",
span: Span {
start: Position {
line: 24,
column: 25,
},
end: Position {
line: 24,
column: 27,
},
},
},
),
],
span: Span {
start: Position {
line: 24,
column: 24,
},
end: Position {
line: 24,
column: 28,
},
},
},
),
FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mapAttrsToList",
span: Span {
start: Position {
line: 24,
column: 30,
},
end: Position {
line: 24,
column: 44,
},
},
},
),
arguments: [
Function(
Function {
head: Simple(
FunctionHeadSimple {
identifier: "path",
},
),
body: Function(
Function {
head: Simple(
FunctionHeadSimple {
identifier: "file",
},
),
body: IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "mkdir -p \"$out/$(dirname ",
span: Span {
start: Position {
line: 25,
column: 1,
},
end: Position {
line: 25,
column: 34,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "path",
span: Span {
start: Position {
line: 25,
column: 36,
},
end: Position {
line: 25,
column: 40,
},
},
},
),
},
),
Raw(
PartRaw {
content: ")\"\nln -s \"",
span: Span {
start: Position {
line: 25,
column: 1,
},
end: Position {
line: 26,
column: 16,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "file",
span: Span {
start: Position {
line: 26,
column: 18,
},
end: Position {
line: 26,
column: 22,
},
},
},
),
},
),
Raw(
PartRaw {
content: "\" \"$out/",
span: Span {
start: Position {
line: 25,
column: 1,
},
end: Position {
line: 26,
column: 31,
},
},
},
),
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "path",
span: Span {
start: Position {
line: 26,
column: 33,
},
end: Position {
line: 26,
column: 37,
},
},
},
),
},
),
Raw(
PartRaw {
content: "\"\n",
span: Span {
start: Position {
line: 25,
column: 1,
},
end: Position {
line: 27,
column: 7,
},
},
},
),
],
span: Span {
start: Position {
line: 24,
column: 58,
},
end: Position {
line: 27,
column: 9,
},
},
},
),
span: Span {
start: Position {
line: 24,
column: 52,
},
end: Position {
line: 27,
column: 9,
},
},
},
),
span: Span {
start: Position {
line: 24,
column: 46,
},
end: Position {
line: 27,
column: 9,
},
},
},
),
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 27,
column: 11,
},
end: Position {
line: 27,
column: 14,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "configDir",
span: Span {
start: Position {
line: 27,
column: 15,
},
end: Position {
line: 27,
column: 24,
},
},
},
),
],
default: None,
},
),
],
},
),
],
},
),
},
),
Raw(
PartRaw {
content: "\n",
span: Span {
start: Position {
line: 23,
column: 1,
},
end: Position {
line: 28,
column: 3,
},
},
},
),
],
span: Span {
start: Position {
line: 22,
column: 60,
},
end: Position {
line: 28,
column: 5,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "localConfig",
span: Span {
start: Position {
line: 30,
column: 3,
},
end: Position {
line: 30,
column: 14,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "global",
span: Span {
start: Position {
line: 31,
column: 5,
},
end: Position {
line: 31,
column: 11,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "config directory",
span: Span {
start: Position {
line: 32,
column: 8,
},
end: Position {
line: 32,
column: 24,
},
},
},
),
],
span: Span {
start: Position {
line: 32,
column: 7,
},
end: Position {
line: 32,
column: 25,
},
},
},
),
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "/etc/netdata/conf.d",
span: Span {
start: Position {
line: 32,
column: 29,
},
end: Position {
line: 32,
column: 48,
},
},
},
),
],
span: Span {
start: Position {
line: 32,
column: 28,
},
end: Position {
line: 32,
column: 49,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "plugins directory",
span: Span {
start: Position {
line: 33,
column: 8,
},
end: Position {
line: 33,
column: 25,
},
},
},
),
],
span: Span {
start: Position {
line: 33,
column: 7,
},
end: Position {
line: 33,
column: 26,
},
},
},
),
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "concatStringsSep",
span: Span {
start: Position {
line: 33,
column: 29,
},
end: Position {
line: 33,
column: 45,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: " ",
span: Span {
start: Position {
line: 33,
column: 47,
},
end: Position {
line: 33,
column: 48,
},
},
},
),
],
span: Span {
start: Position {
line: 33,
column: 46,
},
end: Position {
line: 33,
column: 49,
},
},
},
),
Identifier(
Identifier {
id: "plugins",
span: Span {
start: Position {
line: 33,
column: 50,
},
end: Position {
line: 33,
column: 57,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 31,
column: 14,
},
end: Position {
line: 34,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "web",
span: Span {
start: Position {
line: 35,
column: 5,
},
end: Position {
line: 35,
column: 8,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "web files owner",
span: Span {
start: Position {
line: 36,
column: 8,
},
end: Position {
line: 36,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 36,
column: 7,
},
end: Position {
line: 36,
column: 24,
},
},
},
),
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "root",
span: Span {
start: Position {
line: 36,
column: 28,
},
end: Position {
line: 36,
column: 32,
},
},
},
),
],
span: Span {
start: Position {
line: 36,
column: 27,
},
end: Position {
line: 36,
column: 33,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "web files group",
span: Span {
start: Position {
line: 37,
column: 8,
},
end: Position {
line: 37,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 37,
column: 7,
},
end: Position {
line: 37,
column: 24,
},
},
},
),
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "root",
span: Span {
start: Position {
line: 37,
column: 28,
},
end: Position {
line: 37,
column: 32,
},
},
},
),
],
span: Span {
start: Position {
line: 37,
column: 27,
},
end: Position {
line: 37,
column: 33,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 35,
column: 11,
},
end: Position {
line: 38,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "plugin:cgroups",
span: Span {
start: Position {
line: 39,
column: 6,
},
end: Position {
line: 39,
column: 20,
},
},
},
),
],
span: Span {
start: Position {
line: 39,
column: 5,
},
end: Position {
line: 39,
column: 21,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "script to get cgroup network interfaces",
span: Span {
start: Position {
line: 40,
column: 8,
},
end: Position {
line: 40,
column: 47,
},
},
},
),
],
span: Span {
start: Position {
line: 40,
column: 7,
},
end: Position {
line: 40,
column: 48,
},
},
},
),
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "wrappedPlugins",
span: Span {
start: Position {
line: 40,
column: 54,
},
end: Position {
line: 40,
column: 68,
},
},
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/cgroup-network",
span: Span {
start: Position {
line: 40,
column: 52,
},
end: Position {
line: 40,
column: 110,
},
},
},
),
],
span: Span {
start: Position {
line: 40,
column: 51,
},
end: Position {
line: 40,
column: 111,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "use unified cgroups",
span: Span {
start: Position {
line: 41,
column: 8,
},
end: Position {
line: 41,
column: 27,
},
},
},
),
],
span: Span {
start: Position {
line: 41,
column: 7,
},
end: Position {
line: 41,
column: 28,
},
},
},
),
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "yes",
span: Span {
start: Position {
line: 41,
column: 32,
},
end: Position {
line: 41,
column: 35,
},
},
},
),
],
span: Span {
start: Position {
line: 41,
column: 31,
},
end: Position {
line: 41,
column: 36,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 39,
column: 24,
},
end: Position {
line: 42,
column: 6,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 30,
column: 17,
},
end: Position {
line: 43,
column: 4,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "mkConfig",
span: Span {
start: Position {
line: 44,
column: 3,
},
end: Position {
line: 44,
column: 11,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "generators",
span: Span {
start: Position {
line: 44,
column: 14,
},
end: Position {
line: 44,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "toINI",
span: Span {
start: Position {
line: 44,
column: 25,
},
end: Position {
line: 44,
column: 30,
},
},
},
),
],
default: None,
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 44,
column: 31,
},
end: Position {
line: 44,
column: 33,
},
},
},
),
FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "recursiveUpdate",
span: Span {
start: Position {
line: 44,
column: 35,
},
end: Position {
line: 44,
column: 50,
},
},
},
),
arguments: [
Identifier(
Identifier {
id: "localConfig",
span: Span {
start: Position {
line: 44,
column: 51,
},
end: Position {
line: 44,
column: 62,
},
},
},
),
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 44,
column: 63,
},
end: Position {
line: 44,
column: 66,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "config",
span: Span {
start: Position {
line: 44,
column: 67,
},
end: Position {
line: 44,
column: 73,
},
},
},
),
],
default: None,
},
),
],
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "configFile",
span: Span {
start: Position {
line: 45,
column: 3,
},
end: Position {
line: 45,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 45,
column: 16,
},
end: Position {
line: 45,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "writeText",
span: Span {
start: Position {
line: 45,
column: 21,
},
end: Position {
line: 45,
column: 30,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata.conf",
span: Span {
start: Position {
line: 45,
column: 32,
},
end: Position {
line: 45,
column: 44,
},
},
},
),
],
span: Span {
start: Position {
line: 45,
column: 31,
},
end: Position {
line: 45,
column: 45,
},
},
},
),
IfThenElse(
IfThenElse {
predicate: BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 45,
column: 50,
},
end: Position {
line: 45,
column: 53,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "configText",
span: Span {
start: Position {
line: 45,
column: 54,
},
end: Position {
line: 45,
column: 64,
},
},
},
),
],
default: None,
},
),
operator: NotEqualTo,
right: Identifier(
Identifier {
id: "null",
span: Span {
start: Position {
line: 45,
column: 68,
},
end: Position {
line: 45,
column: 72,
},
},
},
),
},
),
then: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 45,
column: 78,
},
end: Position {
line: 45,
column: 81,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "configText",
span: Span {
start: Position {
line: 45,
column: 82,
},
end: Position {
line: 45,
column: 92,
},
},
},
),
],
default: None,
},
),
else_: Identifier(
Identifier {
id: "mkConfig",
span: Span {
start: Position {
line: 45,
column: 98,
},
end: Position {
line: 45,
column: 106,
},
},
},
),
span: Span {
start: Position {
line: 45,
column: 47,
},
end: Position {
line: 45,
column: 106,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultUser",
span: Span {
start: Position {
line: 47,
column: 3,
},
end: Position {
line: 47,
column: 14,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 47,
column: 18,
},
end: Position {
line: 47,
column: 25,
},
},
},
),
],
span: Span {
start: Position {
line: 47,
column: 17,
},
end: Position {
line: 47,
column: 26,
},
},
},
),
},
),
],
target: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "options",
span: Span {
start: Position {
line: 50,
column: 3,
},
end: Position {
line: 50,
column: 10,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 51,
column: 5,
},
end: Position {
line: 51,
column: 13,
},
},
},
),
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 51,
column: 14,
},
end: Position {
line: 51,
column: 21,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 52,
column: 7,
},
end: Position {
line: 52,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkEnableOption",
span: Span {
start: Position {
line: 52,
column: 16,
},
end: Position {
line: 52,
column: 30,
},
},
},
),
arguments: [
FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 52,
column: 32,
},
end: Position {
line: 52,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 52,
column: 36,
},
end: Position {
line: 52,
column: 41,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 52,
column: 43,
},
end: Position {
line: 52,
column: 50,
},
},
},
),
],
span: Span {
start: Position {
line: 52,
column: 42,
},
end: Position {
line: 52,
column: 51,
},
},
},
),
],
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 54,
column: 7,
},
end: Position {
line: 54,
column: 14,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 54,
column: 17,
},
end: Position {
line: 54,
column: 25,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 55,
column: 9,
},
end: Position {
line: 55,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 55,
column: 16,
},
end: Position {
line: 55,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 55,
column: 22,
},
end: Position {
line: 55,
column: 29,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 56,
column: 9,
},
end: Position {
line: 56,
column: 16,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 56,
column: 19,
},
end: Position {
line: 56,
column: 23,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 56,
column: 24,
},
end: Position {
line: 56,
column: 31,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultText",
span: Span {
start: Position {
line: 57,
column: 9,
},
end: Position {
line: 57,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 57,
column: 23,
},
end: Position {
line: 57,
column: 40,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "pkgs.netdata",
span: Span {
start: Position {
line: 57,
column: 42,
},
end: Position {
line: 57,
column: 54,
},
},
},
),
],
span: Span {
start: Position {
line: 57,
column: 41,
},
end: Position {
line: 57,
column: 55,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 58,
column: 9,
},
end: Position {
line: 58,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 58,
column: 23,
},
end: Position {
line: 58,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 58,
column: 27,
},
end: Position {
line: 58,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "Netdata package to use.",
span: Span {
start: Position {
line: 58,
column: 34,
},
end: Position {
line: 58,
column: 57,
},
},
},
),
],
span: Span {
start: Position {
line: 58,
column: 33,
},
end: Position {
line: 58,
column: 58,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 54,
column: 26,
},
end: Position {
line: 59,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 61,
column: 7,
},
end: Position {
line: 61,
column: 11,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 61,
column: 14,
},
end: Position {
line: 61,
column: 22,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 62,
column: 9,
},
end: Position {
line: 62,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 62,
column: 16,
},
end: Position {
line: 62,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "str",
span: Span {
start: Position {
line: 62,
column: 22,
},
end: Position {
line: 62,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 63,
column: 9,
},
end: Position {
line: 63,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 63,
column: 20,
},
end: Position {
line: 63,
column: 27,
},
},
},
),
],
span: Span {
start: Position {
line: 63,
column: 19,
},
end: Position {
line: 63,
column: 28,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 64,
column: 9,
},
end: Position {
line: 64,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 64,
column: 23,
},
end: Position {
line: 64,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 64,
column: 27,
},
end: Position {
line: 64,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "User account under which netdata runs.",
span: Span {
start: Position {
line: 64,
column: 34,
},
end: Position {
line: 64,
column: 72,
},
},
},
),
],
span: Span {
start: Position {
line: 64,
column: 33,
},
end: Position {
line: 64,
column: 73,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 61,
column: 23,
},
end: Position {
line: 65,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 67,
column: 7,
},
end: Position {
line: 67,
column: 12,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 67,
column: 15,
},
end: Position {
line: 67,
column: 23,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 68,
column: 9,
},
end: Position {
line: 68,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 68,
column: 16,
},
end: Position {
line: 68,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "str",
span: Span {
start: Position {
line: 68,
column: 22,
},
end: Position {
line: 68,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 69,
column: 9,
},
end: Position {
line: 69,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 69,
column: 20,
},
end: Position {
line: 69,
column: 27,
},
},
},
),
],
span: Span {
start: Position {
line: 69,
column: 19,
},
end: Position {
line: 69,
column: 28,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 70,
column: 9,
},
end: Position {
line: 70,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 70,
column: 23,
},
end: Position {
line: 70,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 70,
column: 27,
},
end: Position {
line: 70,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "Group under which netdata runs.",
span: Span {
start: Position {
line: 70,
column: 34,
},
end: Position {
line: 70,
column: 65,
},
},
},
),
],
span: Span {
start: Position {
line: 70,
column: 33,
},
end: Position {
line: 70,
column: 66,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 67,
column: 24,
},
end: Position {
line: 71,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "configText",
span: Span {
start: Position {
line: 73,
column: 7,
},
end: Position {
line: 73,
column: 17,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 73,
column: 20,
},
end: Position {
line: 73,
column: 28,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 74,
column: 9,
},
end: Position {
line: 74,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 74,
column: 16,
},
end: Position {
line: 74,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "nullOr",
span: Span {
start: Position {
line: 74,
column: 22,
},
end: Position {
line: 74,
column: 28,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 74,
column: 29,
},
end: Position {
line: 74,
column: 34,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "lines",
span: Span {
start: Position {
line: 74,
column: 35,
},
end: Position {
line: 74,
column: 40,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 75,
column: 9,
},
end: Position {
line: 75,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 75,
column: 23,
},
end: Position {
line: 75,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 75,
column: 27,
},
end: Position {
line: 75,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "Verbatim netdata.conf, cannot be combined with config.",
span: Span {
start: Position {
line: 75,
column: 34,
},
end: Position {
line: 75,
column: 88,
},
},
},
),
],
span: Span {
start: Position {
line: 75,
column: 33,
},
end: Position {
line: 75,
column: 89,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 76,
column: 9,
},
end: Position {
line: 76,
column: 16,
},
},
},
),
],
to: Identifier(
Identifier {
id: "null",
span: Span {
start: Position {
line: 76,
column: 19,
},
end: Position {
line: 76,
column: 23,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 77,
column: 9,
},
end: Position {
line: 77,
column: 16,
},
},
},
),
],
to: IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "[global]\ndebug log = syslog\naccess log = syslog\nerror log = syslog\n",
span: Span {
start: Position {
line: 78,
column: 1,
},
end: Position {
line: 82,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 77,
column: 19,
},
end: Position {
line: 82,
column: 11,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 73,
column: 29,
},
end: Position {
line: 83,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "python",
span: Span {
start: Position {
line: 85,
column: 7,
},
end: Position {
line: 85,
column: 13,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 86,
column: 9,
},
end: Position {
line: 86,
column: 15,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 86,
column: 18,
},
end: Position {
line: 86,
column: 26,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 87,
column: 11,
},
end: Position {
line: 87,
column: 15,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 87,
column: 18,
},
end: Position {
line: 87,
column: 23,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "bool",
span: Span {
start: Position {
line: 87,
column: 24,
},
end: Position {
line: 87,
column: 28,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 88,
column: 11,
},
end: Position {
line: 88,
column: 18,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 88,
column: 21,
},
end: Position {
line: 88,
column: 25,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 89,
column: 11,
},
end: Position {
line: 89,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 89,
column: 25,
},
end: Position {
line: 89,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 89,
column: 29,
},
end: Position {
line: 89,
column: 34,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Whether to enable python-based plugins\n",
span: Span {
start: Position {
line: 90,
column: 1,
},
end: Position {
line: 91,
column: 11,
},
},
},
),
],
span: Span {
start: Position {
line: 89,
column: 35,
},
end: Position {
line: 91,
column: 13,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 86,
column: 27,
},
end: Position {
line: 92,
column: 10,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "extraPackages",
span: Span {
start: Position {
line: 93,
column: 9,
},
end: Position {
line: 93,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 93,
column: 25,
},
end: Position {
line: 93,
column: 33,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 94,
column: 11,
},
end: Position {
line: 94,
column: 15,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 94,
column: 18,
},
end: Position {
line: 94,
column: 23,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "functionTo",
span: Span {
start: Position {
line: 94,
column: 24,
},
end: Position {
line: 94,
column: 34,
},
},
},
),
],
default: None,
},
),
arguments: [
FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 94,
column: 36,
},
end: Position {
line: 94,
column: 41,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "listOf",
span: Span {
start: Position {
line: 94,
column: 42,
},
end: Position {
line: 94,
column: 48,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 94,
column: 49,
},
end: Position {
line: 94,
column: 54,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 94,
column: 55,
},
end: Position {
line: 94,
column: 62,
},
},
},
),
],
default: None,
},
),
],
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 95,
column: 11,
},
end: Position {
line: 95,
column: 18,
},
},
},
),
],
to: Function(
Function {
head: Simple(
FunctionHeadSimple {
identifier: "ps",
},
),
body: List(
List {
elements: [],
span: Span {
start: Position {
line: 95,
column: 25,
},
end: Position {
line: 95,
column: 27,
},
},
},
),
span: Span {
start: Position {
line: 95,
column: 21,
},
end: Position {
line: 95,
column: 27,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "defaultText",
span: Span {
start: Position {
line: 96,
column: 11,
},
end: Position {
line: 96,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 96,
column: 25,
},
end: Position {
line: 96,
column: 42,
},
},
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "ps: []",
span: Span {
start: Position {
line: 96,
column: 44,
},
end: Position {
line: 96,
column: 50,
},
},
},
),
],
span: Span {
start: Position {
line: 96,
column: 43,
},
end: Position {
line: 96,
column: 51,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 97,
column: 11,
},
end: Position {
line: 97,
column: 18,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 97,
column: 21,
},
end: Position {
line: 97,
column: 38,
},
},
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "ps: [\n ps.psycopg2\n ps.docker\n ps.dnspython\n]\n",
span: Span {
start: Position {
line: 98,
column: 1,
},
end: Position {
line: 103,
column: 11,
},
},
},
),
],
span: Span {
start: Position {
line: 97,
column: 39,
},
end: Position {
line: 103,
column: 13,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 104,
column: 11,
},
end: Position {
line: 104,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 104,
column: 25,
},
end: Position {
line: 104,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 104,
column: 29,
},
end: Position {
line: 104,
column: 34,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Extra python packages available at runtime\nto enable additional python plugins.\n",
span: Span {
start: Position {
line: 105,
column: 1,
},
end: Position {
line: 107,
column: 11,
},
},
},
),
],
span: Span {
start: Position {
line: 104,
column: 35,
},
end: Position {
line: 107,
column: 13,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 93,
column: 34,
},
end: Position {
line: 108,
column: 10,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 85,
column: 16,
},
end: Position {
line: 109,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "extraPluginPaths",
span: Span {
start: Position {
line: 111,
column: 7,
},
end: Position {
line: 111,
column: 23,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 111,
column: 26,
},
end: Position {
line: 111,
column: 34,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 112,
column: 9,
},
end: Position {
line: 112,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 112,
column: 16,
},
end: Position {
line: 112,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "listOf",
span: Span {
start: Position {
line: 112,
column: 22,
},
end: Position {
line: 112,
column: 28,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 112,
column: 29,
},
end: Position {
line: 112,
column: 34,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "path",
span: Span {
start: Position {
line: 112,
column: 35,
},
end: Position {
line: 112,
column: 39,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 113,
column: 9,
},
end: Position {
line: 113,
column: 16,
},
},
},
),
],
to: List(
List {
elements: [],
span: Span {
start: Position {
line: 113,
column: 19,
},
end: Position {
line: 113,
column: 22,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 114,
column: 9,
},
end: Position {
line: 114,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 114,
column: 19,
},
end: Position {
line: 114,
column: 36,
},
},
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "[ \"/path/to/plugins.d\" ]\n",
span: Span {
start: Position {
line: 115,
column: 1,
},
end: Position {
line: 116,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 114,
column: 37,
},
end: Position {
line: 116,
column: 11,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 117,
column: 9,
},
end: Position {
line: 117,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 117,
column: 23,
},
end: Position {
line: 117,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 117,
column: 27,
},
end: Position {
line: 117,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Extra paths to add to the netdata global \"plugins directory\"\noption. Useful for when you want to include your own\ncollection scripts.\n\nDetails about writing a custom netdata plugin are available at:\n\n\nCannot be combined with configText.\n",
span: Span {
start: Position {
line: 118,
column: 1,
},
end: Position {
line: 126,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 117,
column: 33,
},
end: Position {
line: 126,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 111,
column: 35,
},
end: Position {
line: 127,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "config",
span: Span {
start: Position {
line: 129,
column: 7,
},
end: Position {
line: 129,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 129,
column: 16,
},
end: Position {
line: 129,
column: 24,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 130,
column: 9,
},
end: Position {
line: 130,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 130,
column: 16,
},
end: Position {
line: 130,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "attrsOf",
span: Span {
start: Position {
line: 130,
column: 22,
},
end: Position {
line: 130,
column: 29,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 130,
column: 30,
},
end: Position {
line: 130,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "attrs",
span: Span {
start: Position {
line: 130,
column: 36,
},
end: Position {
line: 130,
column: 41,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 131,
column: 9,
},
end: Position {
line: 131,
column: 16,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 131,
column: 19,
},
end: Position {
line: 131,
column: 21,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 132,
column: 9,
},
end: Position {
line: 132,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 132,
column: 23,
},
end: Position {
line: 132,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 132,
column: 27,
},
end: Position {
line: 132,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata.conf configuration as nix attributes. cannot be combined with configText.",
span: Span {
start: Position {
line: 132,
column: 34,
},
end: Position {
line: 132,
column: 115,
},
},
},
),
],
span: Span {
start: Position {
line: 132,
column: 33,
},
end: Position {
line: 132,
column: 116,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 133,
column: 9,
},
end: Position {
line: 133,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 133,
column: 19,
},
end: Position {
line: 133,
column: 36,
},
},
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "global = {\n \"debug log\" = \"syslog\";\n \"access log\" = \"syslog\";\n \"error log\" = \"syslog\";\n};\n",
span: Span {
start: Position {
line: 134,
column: 1,
},
end: Position {
line: 139,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 133,
column: 37,
},
end: Position {
line: 139,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 129,
column: 25,
},
end: Position {
line: 140,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "configDir",
span: Span {
start: Position {
line: 142,
column: 7,
},
end: Position {
line: 142,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 142,
column: 19,
},
end: Position {
line: 142,
column: 27,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 143,
column: 9,
},
end: Position {
line: 143,
column: 13,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 143,
column: 16,
},
end: Position {
line: 143,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "attrsOf",
span: Span {
start: Position {
line: 143,
column: 22,
},
end: Position {
line: 143,
column: 29,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 143,
column: 30,
},
end: Position {
line: 143,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "path",
span: Span {
start: Position {
line: 143,
column: 36,
},
end: Position {
line: 143,
column: 40,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 144,
column: 9,
},
end: Position {
line: 144,
column: 16,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 144,
column: 19,
},
end: Position {
line: 144,
column: 21,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 145,
column: 9,
},
end: Position {
line: 145,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 145,
column: 23,
},
end: Position {
line: 145,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 145,
column: 27,
},
end: Position {
line: 145,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Complete netdata config directory except netdata.conf.\nThe default configuration is merged with changes\ndefined in this option.\nEach top-level attribute denotes a path in the configuration\ndirectory as in environment.etc.\nIts value is the absolute path and must be readable by netdata.\nCannot be combined with configText.\n",
span: Span {
start: Position {
line: 146,
column: 1,
},
end: Position {
line: 153,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 145,
column: 33,
},
end: Position {
line: 153,
column: 11,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "example",
span: Span {
start: Position {
line: 154,
column: 9,
},
end: Position {
line: 154,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "literalExpression",
span: Span {
start: Position {
line: 154,
column: 19,
},
end: Position {
line: 154,
column: 36,
},
},
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "\"health_alarm_notify.conf\" = pkgs.writeText \"health_alarm_notify.conf\" ",
span: Span {
start: Position {
line: 155,
column: 1,
},
end: Position {
line: 155,
column: 82,
},
},
},
),
Raw(
PartRaw {
content: "''",
span: Span {
start: Position {
line: 155,
column: 1,
},
end: Position {
line: 155,
column: 85,
},
},
},
),
Raw(
PartRaw {
content: "\n sendmail=\"/path/to/sendmail\"\n",
span: Span {
start: Position {
line: 155,
column: 1,
},
end: Position {
line: 157,
column: 11,
},
},
},
),
Raw(
PartRaw {
content: "''",
span: Span {
start: Position {
line: 155,
column: 1,
},
end: Position {
line: 157,
column: 14,
},
},
},
),
Raw(
PartRaw {
content: ";\n\"health.d\" = \"/run/secrets/netdata/health.d\";\n",
span: Span {
start: Position {
line: 155,
column: 1,
},
end: Position {
line: 159,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 154,
column: 37,
},
end: Position {
line: 159,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 142,
column: 28,
},
end: Position {
line: 160,
column: 8,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "enableAnalyticsReporting",
span: Span {
start: Position {
line: 162,
column: 7,
},
end: Position {
line: 162,
column: 31,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkOption",
span: Span {
start: Position {
line: 162,
column: 34,
},
end: Position {
line: 162,
column: 42,
},
},
},
),
arguments: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 163,
column: 9,
},
end: Position {
line: 163,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "types",
span: Span {
start: Position {
line: 163,
column: 16,
},
end: Position {
line: 163,
column: 21,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "bool",
span: Span {
start: Position {
line: 163,
column: 22,
},
end: Position {
line: 163,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "default",
span: Span {
start: Position {
line: 164,
column: 9,
},
end: Position {
line: 164,
column: 16,
},
},
},
),
],
to: Identifier(
Identifier {
id: "false",
span: Span {
start: Position {
line: 164,
column: 19,
},
end: Position {
line: 164,
column: 24,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 165,
column: 9,
},
end: Position {
line: 165,
column: 20,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 165,
column: 23,
},
end: Position {
line: 165,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "mdDoc",
span: Span {
start: Position {
line: 165,
column: 27,
},
end: Position {
line: 165,
column: 32,
},
},
},
),
],
default: None,
},
),
arguments: [
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "Enable reporting of anonymous usage statistics to Netdata Inc. via either\nGoogle Analytics (in versions prior to 1.29.4), or Netdata Inc.'s\nself-hosted PostHog (in versions 1.29.4 and later).\nSee: \n",
span: Span {
start: Position {
line: 166,
column: 1,
},
end: Position {
line: 170,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 165,
column: 33,
},
end: Position {
line: 170,
column: 11,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 162,
column: 43,
},
end: Position {
line: 171,
column: 8,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 51,
column: 24,
},
end: Position {
line: 172,
column: 6,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 50,
column: 13,
},
end: Position {
line: 173,
column: 4,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "config",
span: Span {
start: Position {
line: 175,
column: 3,
},
end: Position {
line: 175,
column: 9,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "mkIf",
span: Span {
start: Position {
line: 175,
column: 12,
},
end: Position {
line: 175,
column: 16,
},
},
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 175,
column: 17,
},
end: Position {
line: 175,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 175,
column: 21,
},
end: Position {
line: 175,
column: 27,
},
},
},
),
],
default: None,
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "assertions",
span: Span {
start: Position {
line: 176,
column: 5,
},
end: Position {
line: 176,
column: 15,
},
},
},
),
],
to: List(
List {
elements: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "assertion",
span: Span {
start: Position {
line: 177,
column: 11,
},
end: Position {
line: 177,
column: 20,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 177,
column: 23,
},
end: Position {
line: 177,
column: 26,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "config",
span: Span {
start: Position {
line: 177,
column: 27,
},
end: Position {
line: 177,
column: 33,
},
},
},
),
],
default: None,
},
),
operator: NotEqualTo,
right: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 177,
column: 37,
},
end: Position {
line: 177,
column: 39,
},
},
},
),
},
),
operator: Implication,
right: BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 177,
column: 43,
},
end: Position {
line: 177,
column: 46,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "configText",
span: Span {
start: Position {
line: 177,
column: 47,
},
end: Position {
line: 177,
column: 57,
},
},
},
),
],
default: None,
},
),
operator: EqualTo,
right: Identifier(
Identifier {
id: "null",
span: Span {
start: Position {
line: 177,
column: 61,
},
end: Position {
line: 177,
column: 65,
},
},
},
),
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "message",
span: Span {
start: Position {
line: 178,
column: 11,
},
end: Position {
line: 178,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "Cannot specify both config and configText",
span: Span {
start: Position {
line: 178,
column: 22,
},
end: Position {
line: 178,
column: 63,
},
},
},
),
],
span: Span {
start: Position {
line: 178,
column: 21,
},
end: Position {
line: 178,
column: 64,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 177,
column: 9,
},
end: Position {
line: 179,
column: 10,
},
},
},
),
],
span: Span {
start: Position {
line: 177,
column: 7,
},
end: Position {
line: 180,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 182,
column: 5,
},
end: Position {
line: 182,
column: 16,
},
},
},
),
Raw(
PartRaw {
content: "etc",
span: Span {
start: Position {
line: 182,
column: 17,
},
end: Position {
line: 182,
column: 20,
},
},
},
),
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata/netdata.conf",
span: Span {
start: Position {
line: 182,
column: 22,
},
end: Position {
line: 182,
column: 42,
},
},
},
),
],
span: Span {
start: Position {
line: 182,
column: 21,
},
end: Position {
line: 182,
column: 43,
},
},
},
),
},
),
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 182,
column: 44,
},
end: Position {
line: 182,
column: 50,
},
},
},
),
],
to: Identifier(
Identifier {
id: "configFile",
span: Span {
start: Position {
line: 182,
column: 53,
},
end: Position {
line: 182,
column: 63,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 183,
column: 5,
},
end: Position {
line: 183,
column: 16,
},
},
},
),
Raw(
PartRaw {
content: "etc",
span: Span {
start: Position {
line: 183,
column: 17,
},
end: Position {
line: 183,
column: 20,
},
},
},
),
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata/conf.d",
span: Span {
start: Position {
line: 183,
column: 22,
},
end: Position {
line: 183,
column: 36,
},
},
},
),
],
span: Span {
start: Position {
line: 183,
column: 21,
},
end: Position {
line: 183,
column: 37,
},
},
},
),
},
),
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 183,
column: 38,
},
end: Position {
line: 183,
column: 44,
},
},
},
),
],
to: Identifier(
Identifier {
id: "configDirectory",
span: Span {
start: Position {
line: 183,
column: 47,
},
end: Position {
line: 183,
column: 62,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "systemd",
span: Span {
start: Position {
line: 185,
column: 5,
},
end: Position {
line: 185,
column: 12,
},
},
},
),
Raw(
PartRaw {
content: "services",
span: Span {
start: Position {
line: 185,
column: 13,
},
end: Position {
line: 185,
column: 21,
},
},
},
),
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 185,
column: 22,
},
end: Position {
line: 185,
column: 29,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "description",
span: Span {
start: Position {
line: 186,
column: 7,
},
end: Position {
line: 186,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "Real time performance monitoring",
span: Span {
start: Position {
line: 186,
column: 22,
},
end: Position {
line: 186,
column: 54,
},
},
},
),
],
span: Span {
start: Position {
line: 186,
column: 21,
},
end: Position {
line: 186,
column: 55,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "after",
span: Span {
start: Position {
line: 187,
column: 7,
},
end: Position {
line: 187,
column: 12,
},
},
},
),
],
to: List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "network.target",
span: Span {
start: Position {
line: 187,
column: 18,
},
end: Position {
line: 187,
column: 32,
},
},
},
),
],
span: Span {
start: Position {
line: 187,
column: 17,
},
end: Position {
line: 187,
column: 33,
},
},
},
),
],
span: Span {
start: Position {
line: 187,
column: 15,
},
end: Position {
line: 187,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "wantedBy",
span: Span {
start: Position {
line: 188,
column: 7,
},
end: Position {
line: 188,
column: 15,
},
},
},
),
],
to: List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "multi-user.target",
span: Span {
start: Position {
line: 188,
column: 21,
},
end: Position {
line: 188,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 188,
column: 20,
},
end: Position {
line: 188,
column: 39,
},
},
},
),
],
span: Span {
start: Position {
line: 188,
column: 18,
},
end: Position {
line: 188,
column: 41,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "path",
span: Span {
start: Position {
line: 189,
column: 7,
},
end: Position {
line: 189,
column: 11,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: With(
With {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 189,
column: 20,
},
end: Position {
line: 189,
column: 24,
},
},
},
),
target: List(
List {
elements: [
Identifier(
Identifier {
id: "curl",
span: Span {
start: Position {
line: 189,
column: 28,
},
end: Position {
line: 189,
column: 32,
},
},
},
),
Identifier(
Identifier {
id: "gawk",
span: Span {
start: Position {
line: 189,
column: 33,
},
end: Position {
line: 189,
column: 37,
},
},
},
),
Identifier(
Identifier {
id: "iproute2",
span: Span {
start: Position {
line: 189,
column: 38,
},
end: Position {
line: 189,
column: 46,
},
},
},
),
Identifier(
Identifier {
id: "which",
span: Span {
start: Position {
line: 189,
column: 47,
},
end: Position {
line: 189,
column: 52,
},
},
},
),
Identifier(
Identifier {
id: "procps",
span: Span {
start: Position {
line: 189,
column: 53,
},
end: Position {
line: 189,
column: 59,
},
},
},
),
Identifier(
Identifier {
id: "bash",
span: Span {
start: Position {
line: 189,
column: 60,
},
end: Position {
line: 189,
column: 64,
},
},
},
),
],
span: Span {
start: Position {
line: 189,
column: 26,
},
end: Position {
line: 189,
column: 66,
},
},
},
),
span: Span {
start: Position {
line: 189,
column: 15,
},
end: Position {
line: 189,
column: 66,
},
},
},
),
operator: Concatenation,
right: BinaryOperation(
BinaryOperation {
left: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 190,
column: 12,
},
end: Position {
line: 190,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "optional",
span: Span {
start: Position {
line: 190,
column: 16,
},
end: Position {
line: 190,
column: 24,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 190,
column: 25,
},
end: Position {
line: 190,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "python",
span: Span {
start: Position {
line: 190,
column: 29,
},
end: Position {
line: 190,
column: 35,
},
},
},
),
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 190,
column: 36,
},
end: Position {
line: 190,
column: 42,
},
},
},
),
],
default: None,
},
),
FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 190,
column: 44,
},
end: Position {
line: 190,
column: 48,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "python3",
span: Span {
start: Position {
line: 190,
column: 49,
},
end: Position {
line: 190,
column: 56,
},
},
},
),
Raw(
PartRaw {
content: "withPackages",
span: Span {
start: Position {
line: 190,
column: 57,
},
end: Position {
line: 190,
column: 69,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 190,
column: 70,
},
end: Position {
line: 190,
column: 73,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "python",
span: Span {
start: Position {
line: 190,
column: 74,
},
end: Position {
line: 190,
column: 80,
},
},
},
),
Raw(
PartRaw {
content: "extraPackages",
span: Span {
start: Position {
line: 190,
column: 81,
},
end: Position {
line: 190,
column: 94,
},
},
},
),
],
default: None,
},
),
],
},
),
],
},
),
operator: Concatenation,
right: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 191,
column: 12,
},
end: Position {
line: 191,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "optional",
span: Span {
start: Position {
line: 191,
column: 16,
},
end: Position {
line: 191,
column: 24,
},
},
},
),
],
default: None,
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 191,
column: 25,
},
end: Position {
line: 191,
column: 31,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "virtualisation",
span: Span {
start: Position {
line: 191,
column: 32,
},
end: Position {
line: 191,
column: 46,
},
},
},
),
Raw(
PartRaw {
content: "libvirtd",
span: Span {
start: Position {
line: 191,
column: 47,
},
end: Position {
line: 191,
column: 55,
},
},
},
),
Raw(
PartRaw {
content: "enable",
span: Span {
start: Position {
line: 191,
column: 56,
},
end: Position {
line: 191,
column: 62,
},
},
},
),
],
default: None,
},
),
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 191,
column: 64,
},
end: Position {
line: 191,
column: 70,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "virtualisation",
span: Span {
start: Position {
line: 191,
column: 71,
},
end: Position {
line: 191,
column: 85,
},
},
},
),
Raw(
PartRaw {
content: "libvirtd",
span: Span {
start: Position {
line: 191,
column: 86,
},
end: Position {
line: 191,
column: 94,
},
},
},
),
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 191,
column: 95,
},
end: Position {
line: 191,
column: 102,
},
},
},
),
],
default: None,
},
),
],
},
),
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 192,
column: 7,
},
end: Position {
line: 192,
column: 18,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "PYTHONPATH",
span: Span {
start: Position {
line: 193,
column: 9,
},
end: Position {
line: 193,
column: 19,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 193,
column: 25,
},
end: Position {
line: 193,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 193,
column: 29,
},
end: Position {
line: 193,
column: 36,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/python.d/python_modules",
span: Span {
start: Position {
line: 193,
column: 23,
},
end: Position {
line: 193,
column: 77,
},
},
},
),
],
span: Span {
start: Position {
line: 193,
column: 22,
},
end: Position {
line: 193,
column: 78,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 192,
column: 21,
},
end: Position {
line: 194,
column: 8,
},
},
},
),
operator: Update,
right: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "lib",
span: Span {
start: Position {
line: 194,
column: 12,
},
end: Position {
line: 194,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "optionalAttrs",
span: Span {
start: Position {
line: 194,
column: 16,
},
end: Position {
line: 194,
column: 29,
},
},
},
),
],
default: None,
},
),
arguments: [
UnaryOperation(
UnaryOperation {
operator: Not,
operand: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 194,
column: 32,
},
end: Position {
line: 194,
column: 35,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "enableAnalyticsReporting",
span: Span {
start: Position {
line: 194,
column: 36,
},
end: Position {
line: 194,
column: 60,
},
},
},
),
],
default: None,
},
),
span: Span {
start: Position {
line: 194,
column: 31,
},
end: Position {
line: 194,
column: 60,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "DO_NOT_TRACK",
span: Span {
start: Position {
line: 195,
column: 9,
},
end: Position {
line: 195,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "1",
span: Span {
start: Position {
line: 195,
column: 25,
},
end: Position {
line: 195,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 195,
column: 24,
},
end: Position {
line: 195,
column: 27,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 194,
column: 62,
},
end: Position {
line: 196,
column: 8,
},
},
},
),
],
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "restartTriggers",
span: Span {
start: Position {
line: 197,
column: 7,
},
end: Position {
line: 197,
column: 22,
},
},
},
),
],
to: List(
List {
elements: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 198,
column: 9,
},
end: Position {
line: 198,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 198,
column: 16,
},
end: Position {
line: 198,
column: 27,
},
},
},
),
Raw(
PartRaw {
content: "etc",
span: Span {
start: Position {
line: 198,
column: 28,
},
end: Position {
line: 198,
column: 31,
},
},
},
),
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata/netdata.conf",
span: Span {
start: Position {
line: 198,
column: 33,
},
end: Position {
line: 198,
column: 53,
},
},
},
),
],
span: Span {
start: Position {
line: 198,
column: 32,
},
end: Position {
line: 198,
column: 54,
},
},
},
),
},
),
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 198,
column: 55,
},
end: Position {
line: 198,
column: 61,
},
},
},
),
],
default: None,
},
),
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "config",
span: Span {
start: Position {
line: 199,
column: 9,
},
end: Position {
line: 199,
column: 15,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "environment",
span: Span {
start: Position {
line: 199,
column: 16,
},
end: Position {
line: 199,
column: 27,
},
},
},
),
Raw(
PartRaw {
content: "etc",
span: Span {
start: Position {
line: 199,
column: 28,
},
end: Position {
line: 199,
column: 31,
},
},
},
),
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata/conf.d",
span: Span {
start: Position {
line: 199,
column: 33,
},
end: Position {
line: 199,
column: 47,
},
},
},
),
],
span: Span {
start: Position {
line: 199,
column: 32,
},
end: Position {
line: 199,
column: 48,
},
},
},
),
},
),
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 199,
column: 49,
},
end: Position {
line: 199,
column: 55,
},
},
},
),
],
default: None,
},
),
],
span: Span {
start: Position {
line: 197,
column: 25,
},
end: Position {
line: 200,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "serviceConfig",
span: Span {
start: Position {
line: 201,
column: 7,
},
end: Position {
line: 201,
column: 20,
},
},
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ExecStart",
span: Span {
start: Position {
line: 202,
column: 9,
},
end: Position {
line: 202,
column: 18,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 202,
column: 24,
},
end: Position {
line: 202,
column: 27,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 202,
column: 28,
},
end: Position {
line: 202,
column: 35,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/bin/netdata -P /run/netdata/netdata.pid -D -c /etc/netdata/netdata.conf",
span: Span {
start: Position {
line: 202,
column: 22,
},
end: Position {
line: 202,
column: 108,
},
},
},
),
],
span: Span {
start: Position {
line: 202,
column: 21,
},
end: Position {
line: 202,
column: 109,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ExecReload",
span: Span {
start: Position {
line: 203,
column: 9,
},
end: Position {
line: 203,
column: 19,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 203,
column: 25,
},
end: Position {
line: 203,
column: 29,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "util-linux",
span: Span {
start: Position {
line: 203,
column: 30,
},
end: Position {
line: 203,
column: 40,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/bin/kill -s HUP -s USR1 -s USR2 $MAINPID",
span: Span {
start: Position {
line: 203,
column: 23,
},
end: Position {
line: 203,
column: 82,
},
},
},
),
],
span: Span {
start: Position {
line: 203,
column: 22,
},
end: Position {
line: 203,
column: 83,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ExecStartPost",
span: Span {
start: Position {
line: 204,
column: 9,
},
end: Position {
line: 204,
column: 22,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "pkgs",
span: Span {
start: Position {
line: 204,
column: 25,
},
end: Position {
line: 204,
column: 29,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "writeShellScript",
span: Span {
start: Position {
line: 204,
column: 30,
},
end: Position {
line: 204,
column: 46,
},
},
},
),
],
default: None,
},
),
arguments: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "wait-for-netdata-up",
span: Span {
start: Position {
line: 204,
column: 48,
},
end: Position {
line: 204,
column: 67,
},
},
},
),
],
span: Span {
start: Position {
line: 204,
column: 47,
},
end: Position {
line: 204,
column: 68,
},
},
},
),
IndentedString(
IndentedString {
parts: [
Raw(
PartRaw {
content: "while [ \"$(",
span: Span {
start: Position {
line: 205,
column: 1,
},
end: Position {
line: 205,
column: 22,
},
},
},
),
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: "netdata",
span: Span {
start: Position {
line: 205,
column: 29,
},
end: Position {
line: 205,
column: 36,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/bin/netdatacli ping)\" != pong ]; do sleep 0.5; done\n",
span: Span {
start: Position {
line: 205,
column: 1,
},
end: Position {
line: 206,
column: 9,
},
},
},
),
],
span: Span {
start: Position {
line: 204,
column: 69,
},
end: Position {
line: 206,
column: 11,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "TimeoutStopSec",
span: Span {
start: Position {
line: 208,
column: 9,
},
end: Position {
line: 208,
column: 23,
},
},
},
),
],
to: Integer(
Integer {
value: "60",
span: Span {
start: Position {
line: 208,
column: 26,
},
end: Position {
line: 208,
column: 28,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "Restart",
span: Span {
start: Position {
line: 209,
column: 9,
},
end: Position {
line: 209,
column: 16,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "on-failure",
span: Span {
start: Position {
line: 209,
column: 20,
},
end: Position {
line: 209,
column: 30,
},
},
},
),
],
span: Span {
start: Position {
line: 209,
column: 19,
},
end: Position {
line: 209,
column: 31,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "User",
span: Span {
start: Position {
line: 211,
column: 9,
},
end: Position {
line: 211,
column: 13,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 211,
column: 16,
},
end: Position {
line: 211,
column: 19,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 211,
column: 20,
},
end: Position {
line: 211,
column: 24,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "Group",
span: Span {
start: Position {
line: 212,
column: 9,
},
end: Position {
line: 212,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 212,
column: 17,
},
end: Position {
line: 212,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 212,
column: 21,
},
end: Position {
line: 212,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "LimitNOFILE",
span: Span {
start: Position {
line: 214,
column: 9,
},
end: Position {
line: 214,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "30000",
span: Span {
start: Position {
line: 214,
column: 24,
},
end: Position {
line: 214,
column: 29,
},
},
},
),
],
span: Span {
start: Position {
line: 214,
column: 23,
},
end: Position {
line: 214,
column: 30,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "RuntimeDirectory",
span: Span {
start: Position {
line: 216,
column: 9,
},
end: Position {
line: 216,
column: 25,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 216,
column: 29,
},
end: Position {
line: 216,
column: 36,
},
},
},
),
],
span: Span {
start: Position {
line: 216,
column: 28,
},
end: Position {
line: 216,
column: 37,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "RuntimeDirectoryMode",
span: Span {
start: Position {
line: 217,
column: 9,
},
end: Position {
line: 217,
column: 29,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "0750",
span: Span {
start: Position {
line: 217,
column: 33,
},
end: Position {
line: 217,
column: 37,
},
},
},
),
],
span: Span {
start: Position {
line: 217,
column: 32,
},
end: Position {
line: 217,
column: 38,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "StateDirectory",
span: Span {
start: Position {
line: 219,
column: 9,
},
end: Position {
line: 219,
column: 23,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 219,
column: 27,
},
end: Position {
line: 219,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 219,
column: 26,
},
end: Position {
line: 219,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "StateDirectoryMode",
span: Span {
start: Position {
line: 220,
column: 9,
},
end: Position {
line: 220,
column: 27,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "0750",
span: Span {
start: Position {
line: 220,
column: 31,
},
end: Position {
line: 220,
column: 35,
},
},
},
),
],
span: Span {
start: Position {
line: 220,
column: 30,
},
end: Position {
line: 220,
column: 36,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "CacheDirectory",
span: Span {
start: Position {
line: 222,
column: 9,
},
end: Position {
line: 222,
column: 23,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 222,
column: 27,
},
end: Position {
line: 222,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 222,
column: 26,
},
end: Position {
line: 222,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "CacheDirectoryMode",
span: Span {
start: Position {
line: 223,
column: 9,
},
end: Position {
line: 223,
column: 27,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "0750",
span: Span {
start: Position {
line: 223,
column: 31,
},
end: Position {
line: 223,
column: 35,
},
},
},
),
],
span: Span {
start: Position {
line: 223,
column: 30,
},
end: Position {
line: 223,
column: 36,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "LogsDirectory",
span: Span {
start: Position {
line: 225,
column: 9,
},
end: Position {
line: 225,
column: 22,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 225,
column: 26,
},
end: Position {
line: 225,
column: 33,
},
},
},
),
],
span: Span {
start: Position {
line: 225,
column: 25,
},
end: Position {
line: 225,
column: 34,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "LogsDirectoryMode",
span: Span {
start: Position {
line: 226,
column: 9,
},
end: Position {
line: 226,
column: 26,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "0750",
span: Span {
start: Position {
line: 226,
column: 30,
},
end: Position {
line: 226,
column: 34,
},
},
},
),
],
span: Span {
start: Position {
line: 226,
column: 29,
},
end: Position {
line: 226,
column: 35,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ConfigurationDirectory",
span: Span {
start: Position {
line: 228,
column: 9,
},
end: Position {
line: 228,
column: 31,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 228,
column: 35,
},
end: Position {
line: 228,
column: 42,
},
},
},
),
],
span: Span {
start: Position {
line: 228,
column: 34,
},
end: Position {
line: 228,
column: 43,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ConfigurationDirectoryMode",
span: Span {
start: Position {
line: 229,
column: 9,
},
end: Position {
line: 229,
column: 35,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "0755",
span: Span {
start: Position {
line: 229,
column: 39,
},
end: Position {
line: 229,
column: 43,
},
},
},
),
],
span: Span {
start: Position {
line: 229,
column: 38,
},
end: Position {
line: 229,
column: 44,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "CapabilityBoundingSet",
span: Span {
start: Position {
line: 231,
column: 9,
},
end: Position {
line: 231,
column: 30,
},
},
},
),
],
to: List(
List {
elements: [
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_DAC_OVERRIDE",
span: Span {
start: Position {
line: 232,
column: 12,
},
end: Position {
line: 232,
column: 28,
},
},
},
),
],
span: Span {
start: Position {
line: 232,
column: 11,
},
end: Position {
line: 232,
column: 29,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_DAC_READ_SEARCH",
span: Span {
start: Position {
line: 233,
column: 12,
},
end: Position {
line: 233,
column: 31,
},
},
},
),
],
span: Span {
start: Position {
line: 233,
column: 11,
},
end: Position {
line: 233,
column: 32,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_FOWNER",
span: Span {
start: Position {
line: 234,
column: 12,
},
end: Position {
line: 234,
column: 22,
},
},
},
),
],
span: Span {
start: Position {
line: 234,
column: 11,
},
end: Position {
line: 234,
column: 23,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SETPCAP",
span: Span {
start: Position {
line: 235,
column: 12,
},
end: Position {
line: 235,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 235,
column: 11,
},
end: Position {
line: 235,
column: 24,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SYS_ADMIN",
span: Span {
start: Position {
line: 236,
column: 12,
},
end: Position {
line: 236,
column: 25,
},
},
},
),
],
span: Span {
start: Position {
line: 236,
column: 11,
},
end: Position {
line: 236,
column: 26,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SYS_PTRACE",
span: Span {
start: Position {
line: 237,
column: 12,
},
end: Position {
line: 237,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 237,
column: 11,
},
end: Position {
line: 237,
column: 27,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SYS_RESOURCE",
span: Span {
start: Position {
line: 238,
column: 12,
},
end: Position {
line: 238,
column: 28,
},
},
},
),
],
span: Span {
start: Position {
line: 238,
column: 11,
},
end: Position {
line: 238,
column: 29,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_NET_RAW",
span: Span {
start: Position {
line: 239,
column: 12,
},
end: Position {
line: 239,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 239,
column: 11,
},
end: Position {
line: 239,
column: 24,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SYS_CHROOT",
span: Span {
start: Position {
line: 240,
column: 12,
},
end: Position {
line: 240,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 240,
column: 11,
},
end: Position {
line: 240,
column: 27,
},
},
},
),
String(
String_ {
parts: [
Raw(
PartRaw {
content: "CAP_SETUID",
span: Span {
start: Position {
line: 241,
column: 12,
},
end: Position {
line: 241,
column: 22,
},
},
},
),
],
span: Span {
start: Position {
line: 241,
column: 11,
},
end: Position {
line: 241,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 231,
column: 33,
},
end: Position {
line: 242,
column: 10,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ProtectSystem",
span: Span {
start: Position {
line: 244,
column: 9,
},
end: Position {
line: 244,
column: 22,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "full",
span: Span {
start: Position {
line: 244,
column: 26,
},
end: Position {
line: 244,
column: 30,
},
},
},
),
],
span: Span {
start: Position {
line: 244,
column: 25,
},
end: Position {
line: 244,
column: 31,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ProtectHome",
span: Span {
start: Position {
line: 245,
column: 9,
},
end: Position {
line: 245,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "read-only",
span: Span {
start: Position {
line: 245,
column: 24,
},
end: Position {
line: 245,
column: 33,
},
},
},
),
],
span: Span {
start: Position {
line: 245,
column: 23,
},
end: Position {
line: 245,
column: 34,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "PrivateTmp",
span: Span {
start: Position {
line: 246,
column: 9,
},
end: Position {
line: 246,
column: 19,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 246,
column: 22,
},
end: Position {
line: 246,
column: 26,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "ProtectControlGroups",
span: Span {
start: Position {
line: 247,
column: 9,
},
end: Position {
line: 247,
column: 29,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 247,
column: 32,
},
end: Position {
line: 247,
column: 36,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "PrivateMounts",
span: Span {
start: Position {
line: 248,
column: 9,
},
end: Position {
line: 248,
column: 22,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 248,
column: 25,
},
end: Position {
line: 248,
column: 29,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 201,
column: 23,
},
end: Position {
line: 249,
column: 8,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 185,
column: 32,
},
end: Position {
line: 250,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "systemd",
span: Span {
start: Position {
line: 252,
column: 5,
},
end: Position {
line: 252,
column: 12,
},
},
},
),
Raw(
PartRaw {
content: "enableCgroupAccounting",
span: Span {
start: Position {
line: 252,
column: 13,
},
end: Position {
line: 252,
column: 35,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 252,
column: 38,
},
end: Position {
line: 252,
column: 42,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "security",
span: Span {
start: Position {
line: 254,
column: 5,
},
end: Position {
line: 254,
column: 13,
},
},
},
),
Raw(
PartRaw {
content: "wrappers",
span: Span {
start: Position {
line: 254,
column: 14,
},
end: Position {
line: 254,
column: 22,
},
},
},
),
],
to: BinaryOperation(
BinaryOperation {
left: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "apps.plugin",
span: Span {
start: Position {
line: 255,
column: 8,
},
end: Position {
line: 255,
column: 19,
},
},
},
),
],
span: Span {
start: Position {
line: 255,
column: 7,
},
end: Position {
line: 255,
column: 20,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 256,
column: 9,
},
end: Position {
line: 256,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 256,
column: 21,
},
end: Position {
line: 256,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 256,
column: 25,
},
end: Position {
line: 256,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/apps.plugin.org",
span: Span {
start: Position {
line: 256,
column: 19,
},
end: Position {
line: 256,
column: 75,
},
},
},
),
],
span: Span {
start: Position {
line: 256,
column: 18,
},
end: Position {
line: 256,
column: 76,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "capabilities",
span: Span {
start: Position {
line: 257,
column: 9,
},
end: Position {
line: 257,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cap_dac_read_search,cap_sys_ptrace+ep",
span: Span {
start: Position {
line: 257,
column: 25,
},
end: Position {
line: 257,
column: 62,
},
},
},
),
],
span: Span {
start: Position {
line: 257,
column: 24,
},
end: Position {
line: 257,
column: 63,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "owner",
span: Span {
start: Position {
line: 258,
column: 9,
},
end: Position {
line: 258,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 258,
column: 17,
},
end: Position {
line: 258,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 258,
column: 21,
},
end: Position {
line: 258,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 259,
column: 9,
},
end: Position {
line: 259,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 259,
column: 17,
},
end: Position {
line: 259,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 259,
column: 21,
},
end: Position {
line: 259,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "permissions",
span: Span {
start: Position {
line: 260,
column: 9,
},
end: Position {
line: 260,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "u+rx,g+x,o-rwx",
span: Span {
start: Position {
line: 260,
column: 24,
},
end: Position {
line: 260,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 260,
column: 23,
},
end: Position {
line: 260,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 255,
column: 23,
},
end: Position {
line: 261,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cgroup-network",
span: Span {
start: Position {
line: 263,
column: 8,
},
end: Position {
line: 263,
column: 22,
},
},
},
),
],
span: Span {
start: Position {
line: 263,
column: 7,
},
end: Position {
line: 263,
column: 23,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 264,
column: 9,
},
end: Position {
line: 264,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 264,
column: 21,
},
end: Position {
line: 264,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 264,
column: 25,
},
end: Position {
line: 264,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/cgroup-network.org",
span: Span {
start: Position {
line: 264,
column: 19,
},
end: Position {
line: 264,
column: 78,
},
},
},
),
],
span: Span {
start: Position {
line: 264,
column: 18,
},
end: Position {
line: 264,
column: 79,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "capabilities",
span: Span {
start: Position {
line: 265,
column: 9,
},
end: Position {
line: 265,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cap_setuid+ep",
span: Span {
start: Position {
line: 265,
column: 25,
},
end: Position {
line: 265,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 265,
column: 24,
},
end: Position {
line: 265,
column: 39,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "owner",
span: Span {
start: Position {
line: 266,
column: 9,
},
end: Position {
line: 266,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 266,
column: 17,
},
end: Position {
line: 266,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 266,
column: 21,
},
end: Position {
line: 266,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 267,
column: 9,
},
end: Position {
line: 267,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 267,
column: 17,
},
end: Position {
line: 267,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 267,
column: 21,
},
end: Position {
line: 267,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "permissions",
span: Span {
start: Position {
line: 268,
column: 9,
},
end: Position {
line: 268,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "u+rx,g+x,o-rwx",
span: Span {
start: Position {
line: 268,
column: 24,
},
end: Position {
line: 268,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 268,
column: 23,
},
end: Position {
line: 268,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 263,
column: 26,
},
end: Position {
line: 269,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "perf.plugin",
span: Span {
start: Position {
line: 271,
column: 8,
},
end: Position {
line: 271,
column: 19,
},
},
},
),
],
span: Span {
start: Position {
line: 271,
column: 7,
},
end: Position {
line: 271,
column: 20,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 272,
column: 9,
},
end: Position {
line: 272,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 272,
column: 21,
},
end: Position {
line: 272,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 272,
column: 25,
},
end: Position {
line: 272,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/perf.plugin.org",
span: Span {
start: Position {
line: 272,
column: 19,
},
end: Position {
line: 272,
column: 75,
},
},
},
),
],
span: Span {
start: Position {
line: 272,
column: 18,
},
end: Position {
line: 272,
column: 76,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "capabilities",
span: Span {
start: Position {
line: 273,
column: 9,
},
end: Position {
line: 273,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cap_sys_admin+ep",
span: Span {
start: Position {
line: 273,
column: 25,
},
end: Position {
line: 273,
column: 41,
},
},
},
),
],
span: Span {
start: Position {
line: 273,
column: 24,
},
end: Position {
line: 273,
column: 42,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "owner",
span: Span {
start: Position {
line: 274,
column: 9,
},
end: Position {
line: 274,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 274,
column: 17,
},
end: Position {
line: 274,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 274,
column: 21,
},
end: Position {
line: 274,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 275,
column: 9,
},
end: Position {
line: 275,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 275,
column: 17,
},
end: Position {
line: 275,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 275,
column: 21,
},
end: Position {
line: 275,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "permissions",
span: Span {
start: Position {
line: 276,
column: 9,
},
end: Position {
line: 276,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "u+rx,g+x,o-rwx",
span: Span {
start: Position {
line: 276,
column: 24,
},
end: Position {
line: 276,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 276,
column: 23,
},
end: Position {
line: 276,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 271,
column: 23,
},
end: Position {
line: 277,
column: 8,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "slabinfo.plugin",
span: Span {
start: Position {
line: 279,
column: 8,
},
end: Position {
line: 279,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 279,
column: 7,
},
end: Position {
line: 279,
column: 24,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 280,
column: 9,
},
end: Position {
line: 280,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 280,
column: 21,
},
end: Position {
line: 280,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 280,
column: 25,
},
end: Position {
line: 280,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/slabinfo.plugin.org",
span: Span {
start: Position {
line: 280,
column: 19,
},
end: Position {
line: 280,
column: 79,
},
},
},
),
],
span: Span {
start: Position {
line: 280,
column: 18,
},
end: Position {
line: 280,
column: 80,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "capabilities",
span: Span {
start: Position {
line: 281,
column: 9,
},
end: Position {
line: 281,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cap_dac_override+ep",
span: Span {
start: Position {
line: 281,
column: 25,
},
end: Position {
line: 281,
column: 44,
},
},
},
),
],
span: Span {
start: Position {
line: 281,
column: 24,
},
end: Position {
line: 281,
column: 45,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "owner",
span: Span {
start: Position {
line: 282,
column: 9,
},
end: Position {
line: 282,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 282,
column: 17,
},
end: Position {
line: 282,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 282,
column: 21,
},
end: Position {
line: 282,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 283,
column: 9,
},
end: Position {
line: 283,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 283,
column: 17,
},
end: Position {
line: 283,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 283,
column: 21,
},
end: Position {
line: 283,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "permissions",
span: Span {
start: Position {
line: 284,
column: 9,
},
end: Position {
line: 284,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "u+rx,g+x,o-rwx",
span: Span {
start: Position {
line: 284,
column: 24,
},
end: Position {
line: 284,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 284,
column: 23,
},
end: Position {
line: 284,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 279,
column: 27,
},
end: Position {
line: 285,
column: 8,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 254,
column: 25,
},
end: Position {
line: 287,
column: 6,
},
},
},
),
operator: Update,
right: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "optionalAttrs",
span: Span {
start: Position {
line: 287,
column: 10,
},
end: Position {
line: 287,
column: 23,
},
},
},
),
arguments: [
PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 287,
column: 25,
},
end: Position {
line: 287,
column: 28,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 287,
column: 29,
},
end: Position {
line: 287,
column: 36,
},
},
},
),
Raw(
PartRaw {
content: "withIpmi",
span: Span {
start: Position {
line: 287,
column: 37,
},
end: Position {
line: 287,
column: 45,
},
},
},
),
],
default: None,
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Expression(
PartExpression {
expression: String(
String_ {
parts: [
Raw(
PartRaw {
content: "freeipmi.plugin",
span: Span {
start: Position {
line: 288,
column: 8,
},
end: Position {
line: 288,
column: 23,
},
},
},
),
],
span: Span {
start: Position {
line: 288,
column: 7,
},
end: Position {
line: 288,
column: 24,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "source",
span: Span {
start: Position {
line: 289,
column: 9,
},
end: Position {
line: 289,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Interpolation(
PartInterpolation {
expression: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 289,
column: 21,
},
end: Position {
line: 289,
column: 24,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "package",
span: Span {
start: Position {
line: 289,
column: 25,
},
end: Position {
line: 289,
column: 32,
},
},
},
),
],
default: None,
},
),
},
),
Raw(
PartRaw {
content: "/libexec/netdata/plugins.d/freeipmi.plugin.org",
span: Span {
start: Position {
line: 289,
column: 19,
},
end: Position {
line: 289,
column: 79,
},
},
},
),
],
span: Span {
start: Position {
line: 289,
column: 18,
},
end: Position {
line: 289,
column: 80,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "capabilities",
span: Span {
start: Position {
line: 290,
column: 9,
},
end: Position {
line: 290,
column: 21,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "cap_dac_override,cap_fowner+ep",
span: Span {
start: Position {
line: 290,
column: 25,
},
end: Position {
line: 290,
column: 55,
},
},
},
),
],
span: Span {
start: Position {
line: 290,
column: 24,
},
end: Position {
line: 290,
column: 56,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "owner",
span: Span {
start: Position {
line: 291,
column: 9,
},
end: Position {
line: 291,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 291,
column: 17,
},
end: Position {
line: 291,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 291,
column: 21,
},
end: Position {
line: 291,
column: 25,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 292,
column: 9,
},
end: Position {
line: 292,
column: 14,
},
},
},
),
],
to: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 292,
column: 17,
},
end: Position {
line: 292,
column: 20,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 292,
column: 21,
},
end: Position {
line: 292,
column: 26,
},
},
},
),
],
default: None,
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "permissions",
span: Span {
start: Position {
line: 293,
column: 9,
},
end: Position {
line: 293,
column: 20,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "u+rx,g+x,o-rwx",
span: Span {
start: Position {
line: 293,
column: 24,
},
end: Position {
line: 293,
column: 38,
},
},
},
),
],
span: Span {
start: Position {
line: 293,
column: 23,
},
end: Position {
line: 293,
column: 39,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 288,
column: 27,
},
end: Position {
line: 294,
column: 8,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 287,
column: 47,
},
end: Position {
line: 295,
column: 6,
},
},
},
),
],
},
),
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "security",
span: Span {
start: Position {
line: 297,
column: 5,
},
end: Position {
line: 297,
column: 13,
},
},
},
),
Raw(
PartRaw {
content: "pam",
span: Span {
start: Position {
line: 297,
column: 14,
},
end: Position {
line: 297,
column: 17,
},
},
},
),
Raw(
PartRaw {
content: "loginLimits",
span: Span {
start: Position {
line: 297,
column: 18,
},
end: Position {
line: 297,
column: 29,
},
},
},
),
],
to: List(
List {
elements: [
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "domain",
span: Span {
start: Position {
line: 298,
column: 9,
},
end: Position {
line: 298,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 298,
column: 19,
},
end: Position {
line: 298,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 298,
column: 18,
},
end: Position {
line: 298,
column: 27,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 298,
column: 29,
},
end: Position {
line: 298,
column: 33,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "soft",
span: Span {
start: Position {
line: 298,
column: 37,
},
end: Position {
line: 298,
column: 41,
},
},
},
),
],
span: Span {
start: Position {
line: 298,
column: 36,
},
end: Position {
line: 298,
column: 42,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "item",
span: Span {
start: Position {
line: 298,
column: 44,
},
end: Position {
line: 298,
column: 48,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nofile",
span: Span {
start: Position {
line: 298,
column: 52,
},
end: Position {
line: 298,
column: 58,
},
},
},
),
],
span: Span {
start: Position {
line: 298,
column: 51,
},
end: Position {
line: 298,
column: 59,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "value",
span: Span {
start: Position {
line: 298,
column: 61,
},
end: Position {
line: 298,
column: 66,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "10000",
span: Span {
start: Position {
line: 298,
column: 70,
},
end: Position {
line: 298,
column: 75,
},
},
},
),
],
span: Span {
start: Position {
line: 298,
column: 69,
},
end: Position {
line: 298,
column: 76,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 298,
column: 7,
},
end: Position {
line: 298,
column: 79,
},
},
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "domain",
span: Span {
start: Position {
line: 299,
column: 9,
},
end: Position {
line: 299,
column: 15,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "netdata",
span: Span {
start: Position {
line: 299,
column: 19,
},
end: Position {
line: 299,
column: 26,
},
},
},
),
],
span: Span {
start: Position {
line: 299,
column: 18,
},
end: Position {
line: 299,
column: 27,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "type",
span: Span {
start: Position {
line: 299,
column: 29,
},
end: Position {
line: 299,
column: 33,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "hard",
span: Span {
start: Position {
line: 299,
column: 37,
},
end: Position {
line: 299,
column: 41,
},
},
},
),
],
span: Span {
start: Position {
line: 299,
column: 36,
},
end: Position {
line: 299,
column: 42,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "item",
span: Span {
start: Position {
line: 299,
column: 44,
},
end: Position {
line: 299,
column: 48,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "nofile",
span: Span {
start: Position {
line: 299,
column: 52,
},
end: Position {
line: 299,
column: 58,
},
},
},
),
],
span: Span {
start: Position {
line: 299,
column: 51,
},
end: Position {
line: 299,
column: 59,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "value",
span: Span {
start: Position {
line: 299,
column: 61,
},
end: Position {
line: 299,
column: 66,
},
},
},
),
],
to: String(
String_ {
parts: [
Raw(
PartRaw {
content: "30000",
span: Span {
start: Position {
line: 299,
column: 70,
},
end: Position {
line: 299,
column: 75,
},
},
},
),
],
span: Span {
start: Position {
line: 299,
column: 69,
},
end: Position {
line: 299,
column: 76,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 299,
column: 7,
},
end: Position {
line: 299,
column: 79,
},
},
},
),
],
span: Span {
start: Position {
line: 297,
column: 32,
},
end: Position {
line: 300,
column: 6,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 302,
column: 5,
},
end: Position {
line: 302,
column: 10,
},
},
},
),
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 302,
column: 11,
},
end: Position {
line: 302,
column: 16,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "optionalAttrs",
span: Span {
start: Position {
line: 302,
column: 19,
},
end: Position {
line: 302,
column: 32,
},
},
},
),
arguments: [
BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 302,
column: 34,
},
end: Position {
line: 302,
column: 37,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "user",
span: Span {
start: Position {
line: 302,
column: 38,
},
end: Position {
line: 302,
column: 42,
},
},
},
),
],
default: None,
},
),
operator: EqualTo,
right: Identifier(
Identifier {
id: "defaultUser",
span: Span {
start: Position {
line: 302,
column: 46,
},
end: Position {
line: 302,
column: 57,
},
},
},
),
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "defaultUser",
span: Span {
start: Position {
line: 303,
column: 9,
},
end: Position {
line: 303,
column: 20,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 304,
column: 9,
},
end: Position {
line: 304,
column: 14,
},
},
},
),
],
to: Identifier(
Identifier {
id: "defaultUser",
span: Span {
start: Position {
line: 304,
column: 17,
},
end: Position {
line: 304,
column: 28,
},
},
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "isSystemUser",
span: Span {
start: Position {
line: 305,
column: 9,
},
end: Position {
line: 305,
column: 21,
},
},
},
),
],
to: Identifier(
Identifier {
id: "true",
span: Span {
start: Position {
line: 305,
column: 24,
},
end: Position {
line: 305,
column: 28,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 303,
column: 24,
},
end: Position {
line: 306,
column: 8,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 302,
column: 59,
},
end: Position {
line: 307,
column: 6,
},
},
},
),
],
},
),
},
),
KeyValue(
BindingKeyValue {
from: [
Raw(
PartRaw {
content: "users",
span: Span {
start: Position {
line: 309,
column: 5,
},
end: Position {
line: 309,
column: 10,
},
},
},
),
Raw(
PartRaw {
content: "groups",
span: Span {
start: Position {
line: 309,
column: 11,
},
end: Position {
line: 309,
column: 17,
},
},
},
),
],
to: FunctionApplication(
FunctionApplication {
function: Identifier(
Identifier {
id: "optionalAttrs",
span: Span {
start: Position {
line: 309,
column: 20,
},
end: Position {
line: 309,
column: 33,
},
},
},
),
arguments: [
BinaryOperation(
BinaryOperation {
left: PropertyAccess(
PropertyAccess {
expression: Identifier(
Identifier {
id: "cfg",
span: Span {
start: Position {
line: 309,
column: 35,
},
end: Position {
line: 309,
column: 38,
},
},
},
),
attribute_path: [
Raw(
PartRaw {
content: "group",
span: Span {
start: Position {
line: 309,
column: 39,
},
end: Position {
line: 309,
column: 44,
},
},
},
),
],
default: None,
},
),
operator: EqualTo,
right: Identifier(
Identifier {
id: "defaultUser",
span: Span {
start: Position {
line: 309,
column: 48,
},
end: Position {
line: 309,
column: 59,
},
},
},
),
},
),
Map(
Map {
recursive: false,
bindings: [
KeyValue(
BindingKeyValue {
from: [
Interpolation(
PartInterpolation {
expression: Identifier(
Identifier {
id: "defaultUser",
span: Span {
start: Position {
line: 310,
column: 9,
},
end: Position {
line: 310,
column: 20,
},
},
},
),
},
),
],
to: Map(
Map {
recursive: false,
bindings: [],
span: Span {
start: Position {
line: 310,
column: 24,
},
end: Position {
line: 310,
column: 27,
},
},
},
),
},
),
],
span: Span {
start: Position {
line: 309,
column: 61,
},
end: Position {
line: 311,
column: 6,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 175,
column: 28,
},
end: Position {
line: 313,
column: 4,
},
},
},
),
],
},
),
},
),
],
span: Span {
start: Position {
line: 49,
column: 4,
},
end: Position {
line: 314,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 5,
column: 1,
},
end: Position {
line: 314,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 3,
column: 1,
},
end: Position {
line: 314,
column: 2,
},
},
},
),
span: Span {
start: Position {
line: 1,
column: 1,
},
end: Position {
line: 314,
column: 2,
},
},
},
)