Bundle parameters are optional.
Both in the sense of implementation, but also from the perspective of use.
I did not know (or if I did, i don’t even remember forgetting) that bundle parameters, if present are optional. In that, a bundle that has parameters can be called without parameters . However, if you call with non-zero parameters you must supply all (that part I knew).
bundle agent __main__
{
bundle agent __main__
{
vars:
"stuff" slist => { "some", "thing-s", "that's", "not valid", "variable names"};
"classic_associative_array[$(stuff)]"
string => string_upcase("$(stuff)");
}
bundle agent php
{
vars:
"version" string => ifelse( "debian.!ubuntu", "8.0",
"ubuntu", "8.2",
"centos", "8.3",
"freebsd", "82",
" ¯\_(ツ)_/¯" );
variablesmatching_as_data()
is useful for centralizing information from disparate sources. For example, deriving a list of package names by extracting the values from variables that match a specific name.
bundle agent package_names_from_variablesmatching_as_data
# @brief Example illustrating deriving a list of package names from variables named with a specific naming convention
{
vars:
"packages_baseline" slist => { "bash-completion", "emacs" };
"packages_os" slist => { "httpd" };
@nickanderson The title piqued my interest so I had a read. Bearing in mind that I don't use cfengine,
so it's likely my fault for not understanding, but I would have liked to see how you do different
things _as_a_result_ of the different repaired vs kept vs reached scenarios.
Is it possible to do that? Say create a new file with contents that vary based on which of those
scenarios occured?
Thanks!
bundle agent __main__
{
vars:
"repo_data" data => '{"one": { "value": "something" }, "two": { "run_class": "linux" } }';
"repo_names" slist => getindices(repo_data);
reports:
"$(this.bundle): yes or/not $(repo_names)"
if => or(
bundle agent __main__
{
vars:
# one option for each of 28 days in a month.
"options" slist => { expandrange( "selected_option_[1-28]", 1 ) };
classes:
"selected_option" select_class => { @(options) };
I have a long history of using org-mode, but I don’t have a consistent history of tracking it under version control. I have at times and then stopped, I don’t push my git repository anywhere, it does get backed up periodically. Some of my org-mode files get copied around to multiple devices (typically bi-directional sync, but you can get creative with send only and exclusions etc ..). Anyway, I have a few different git repositories that contain org-mode files and I wanted to visualize activity over time. Gource produces a nifty visualization, and you can even interact with it, zooming in, panning around while being able to see user, directory, and file names.
I use this city script to generate videos like https://www.youtube.com/watch?v=b7y0y6sWb2I
#!/bin/bash
set -e
set -u
set -x