Forum: CFEngine Help
Subject: Improving community open promise-body library (COPBL)
Author: toddnni
Link to topic: https://cfengine.com/forum/read.php?3,24119,24119#msg-24119

Dear community,

I would like to share you some bodys that I miss from cfengine_stdlib.cf. I 
think that most of us have created local libraries, but I tried to pick the 
most general bodys.


###################################################
# edit_line bundles
###################################################

##
## editing bodies
##

body select_region in_between(start, end)
{
select_start => "$(start)";
select_end => "$(end)";
}

##

body select_region in_between_with_limiters(start, end)
{
select_start => "$(start)";
include_start_delimiter => "true";
select_end => "$(end)";
include_end_delimiter => "true";
}

##
## location
##

body location before_first(lineexp)
{
select_line_matching => "$(lineexp)";
before_after => "before";
first_last => "first";
}

##

body location before_last(lineexp)
{
select_line_matching => "$(lineexp)";
before_after => "before";
first_last => "last";
}

##

body location after_first(lineexp)
{
select_line_matching => "$(lineexp)";
before_after => "after";
first_last => "first";
}

##

body location after_last(lineexp)
{
select_line_matching => "$(lineexp)";
before_after => "after";
first_last => "last";
}

####################################################
## agent bodyparts
####################################################

##
## action
##

body action inform
{
report_level => "inform";
}

###################################################
# agent bundles
###################################################

##..................................................
## files promises
##..................................................

##
## copy_from
##

body copy_from local_bincp(path)
{
source => "$(path)";
compare => "binary";
}

##

body copy_from no_backup_scp(path, servers)
{
servers => { "@(servers)" };
source => "$(path)";
compare => "digest";
verify => "true";
encrypt => "true";
copy_backup => "false";
}

##

body copy_from no_backup_rdcp(path, servers)
{
servers => { "@(servers)" };
source => "$(path)";
compare => "digest";
copy_backup => "false";
}

##
## perms
##

body perms mg(mode, group)
{
groups => { "$(group)" };
mode   => "$(mode)";
}

##
## file_select
##

body file_select by_path(paths)
{
path_name => { "@(paths)" };
file_result => "path_name";
}

##

body file_select exclude_path(paths)
{
path_name => { "@(paths)" };
file_result => "!path_name";
}

##

body file_select exclude_type(types)
{
file_types  => { "@(types)" };
file_result => "!file_types";
}

##..................................................
## reports promises
##..................................................

##
## printfile
##

body printfile print_file(file, lines)
{
file_to_print   => "$(file)";
number_of_lines => "$(lines)";
}


What do you think about these? Do you regard these general enough to be 
included in the standard library?

Thanks for your time.

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to