Prototype: readenvfile(filename, optional_maxbytes)
Return type: data
Description: Parses key-value pairs from the file filename
in env file format (man os-release
). Returns the result as a data
variable. Keys and values are interpreted as strings. maxbytes
is optional, if specified, only the first maxbytes
bytes are read from filename
. Details of the os-release/env file format on freedesktop.org
Arguments:
filename
: string
- File name - in the range: "?(/.*)
otpional_maxbytes
: int
- Maximum number of bytes to read - in the range: 0,99999999999
Syntax example:
code
vars:
"loadthis"
data => readenvfile("/etc/os-release");
Complete example:
Prepare:
code
echo 'PRETTY_NAME="Ubuntu 14.04.5 LTS"' > /tmp/os-release
Run:
code
body edit_defaults empty
{
empty_file_before_editing => "true";
edit_backup => "false";
}
bundle edit_line insert_lines(lines)
{
insert_lines:
"$(lines)";
}
body printfile cat(file)
{
file_to_print => "$(file)";
number_of_lines => "inf";
}
bundle agent main
{
classes:
"file_found" expression => fileexists("/tmp/os-release");
# Use readenvfile() to load /tmp/os-release, then convert to json:
vars:
file_found::
"envdata"
data => readenvfile("/tmp/os-release");
"jsonstring"
string => storejson(envdata);
# Print input(os-release) and output(json) files:
reports:
file_found::
"/tmp/os-release :"
printfile => cat("/tmp/os-release");
"/tmp/os-release converted to json:";
"$(jsonstring)";
"(The data for this system is available in sys.os_release)";
!file_found::
"/tmp/os-release doesn't exist, run this command:";
"echo 'PRETTY_NAME=\"Ubuntu 14.04.5 LTS\"' > /tmp/os-release";
}
Output:
code
R: /tmp/os-release :
R: PRETTY_NAME="Ubuntu 14.04.5 LTS"
R: /tmp/os-release converted to json:
R: {
"PRETTY_NAME": "Ubuntu 14.04.5 LTS"
}
R: (The data for this system is available in sys.os_release)
Notes: This function is used internally to load /etc/os-release
into sys.os_release
.
See also: data_expand()
, readdata()
, parsejson()
, parseyaml()
, storejson()
, mergedata()
, and data
documentation.
History:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4