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
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to