Forum: CFEngine Help
Subject: Re: Fix group only for files in .svn dir
Author: Igor
Link to topic: https://cfengine.com/forum/read.php?3,23681,23702#msg-23702
Hi!
For example, i have structure of dirs like:
/var/svn/dirs1
/var/svn/dirs1/.svn
/var/svn/dirs1/.svn/svnfile1
/var/svn/dirs1/.svn/svnfile2
/var/svn/dirs1/.svn/svnfile3
/var/svn/dirs1/SUBDIR1
/var/svn/dirs1/SUBDIR2
/var/svn/dirs1/SUBDIR3
/var/svn/dirs1/file1
/var/svn/dirs1/file2
/var/svn/dirs1/file3
/var/svn/dirs2
/var/svn/dirs2/.svn
/var/svn/dirs2/.svn/svnfile1
/var/svn/dirs2/.svn/svnfile2
/var/svn/dirs2/.svn/svnfile3
/var/svn/dirs2/SUBDIR1
/var/svn/dirs2/SUBDIR2
/var/svn/dirs2/SUBDIR3
/var/svn/dirs2/file1
/var/svn/dirs2/file2
/var/svn/dirs2/file3
/var/svn/dirs3
/var/svn/dirs3/.svn
/var/svn/dirs3/.svn/svnfile1
/var/svn/dirs3/.svn/svnfile2
/var/svn/dirs3/.svn/svnfile3
/var/svn/dirs3/SUBDIR1
/var/svn/dirs3/SUBDIR2
/var/svn/dirs3/SUBDIR3
/var/svn/dirs3/file1
/var/svn/dirs3/file2
/var/svn/dirs3/file3
I want fix group only for files in .svn dirs:
/var/svn/dirs1/.svn
/var/svn/dirs1/.svn/svnfile1
/var/svn/dirs1/.svn/svnfile2
/var/svn/dirs1/.svn/svnfile3
/var/svn/dirs2/.svn
/var/svn/dirs2/.svn/svnfile1
/var/svn/dirs2/.svn/svnfile2
/var/svn/dirs2/.svn/svnfile3
/var/svn/dirs3/.svn
/var/svn/dirs3/.svn/svnfile1
/var/svn/dirs3/.svn/svnfile2
/var/svn/dirs3/.svn/svnfile3
Code:
body common control
{
bundlesequence => { "fix_file_permission_in_svn_dir" };
}
bundle agent fix_file_permission_in_svn_dir
{
vars:
"SOURCE_DIR_SVN" string => "/var/svn";
files:
"$(SOURCE_DIR_SVN)" perms => g("svn"),
depth_search => _recurse_only_svn("inf");
}
body perms g(group)
{
groups => { "$(group)" };
}
body depth_search _recurse_only_svn(d)
{
depth => "$(d)";
include_basedir => "true";
include_dirs => { "\.svn" };
}
#cf-agent -v -K -f unit_test_fix_perm2.cf
cf3> =========================================================
cf3> files in bundle fix_file_permission_in_svn_dir (1)
cf3> =========================================================
cf3>
cf3>
cf3> .........................................................
cf3> Promise handle:
cf3> Promise made by: /var/svn
cf3> .........................................................
cf3>
cf3> -> Using literal pathtype for /var/svn
cf3> -> Handling file existence constraints on /var/svn
cf3> -> Promise to skip base directory /var/svn
cf3> Skipping matched non-included directory /var/svn/dirs1
cf3> Skipping matched non-included directory /var/svn/dirs2
cf3> Skipping matched non-included directory /var/svn/dirs3
I expected that results of include_dirs => { "\.svn" } will be:
cf3> -> Handling file existence constraints on /var/svn/dirs1/.svn/svnfile1
cf3> -> Group of /var/svn/dirs1/.svn/svnfile1 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs1/.svn/svnfile1 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs1/.svn/svnfile2
cf3> -> Group of /var/svn/dirs1/.svn/svnfile2 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs1/.svn/svnfile2 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs1/.svn/svnfile3
cf3> -> Group of /var/svn/dirs1/.svn/svnfile3 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs1/.svn/svnfile3 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs1/.svn
{skip}
cf3> -> Handling file existence constraints on /var/svn/dirs2/.svn/svnfile1
cf3> -> Group of /var/svn/dirs2/.svn/svnfile1 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs2/.svn/svnfile1 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs2/.svn/svnfile2
cf3> -> Group of /var/svn/dirs2/.svn/svnfile2 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs2/.svn/svnfile2 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs2/.svn/svnfile3
cf3> -> Group of /var/svn/dirs2/.svn/svnfile3 was 0, setting to 1002
cf3> -> File permissions on /var/svn/dirs2/.svn/svnfile3 as promised
cf3> -> Handling file existence constraints on /var/svn/dirs2/.svn
{same for /var/svn/dirs2/dirs3}
I.e include_dirs don't work with recurse. Is it correct behavior of
include_dirs?
---
Igor
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine