#  Copyright 2021 Northern.tech AS

#  This file is part of CFEngine 3 - written and maintained by Northern.tech AS.

#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the
#  Free Software Foundation; version 3.

#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA

# To the extent this program is licensed as part of the Enterprise
# versions of Cfengine, the applicable Commercial Open Source License
# (COSL) may apply to this file if you as a licensee so wish it. See
# included file COSL.txt.

#######################################################
#
# Apache 2 reconfig - modelled on SuSE
#
#######################################################

body common control

{
    any::

      bundlesequence  => {
			   apache
      };   
}

#######################################################

bundle agent apache

{
  files:

      "/home/mark/tmp/apache2" #  "/etc/sysconfig/apache2" 

      edit_line => fixapache;
}

#######################################################
# For the library
#######################################################

bundle edit_line fixapache

{ # Values have the form NAME = "quoted space separated list"

  vars:

      "add_modules"     slist => { 
				   "dav", 
				   "dav_fs", 
				   "ssl", 
				   "php5", 
				   "dav_svn",
				   "xyz",
				   "superduper"
      };

      "del_modules"     slist => { 
				   "php3",
				   "jk",
				   "userdir",
				   "imagemap",
				   "alias"
      };

  insert_lines:

      "APACHE_CONF_INCLUDE_FILES=\"/site/masterfiles/local-http.conf\"";

  field_edits:

      #####################################################################
      # APACHE_MODULES="authz_host actions alias auth_basic dav dav_fs imagemap ssl php5 dav_svn authz_default jk"
      #####################################################################

      "APACHE_MODULES=.*"

      # Insert module "columns" between the quoted RHS 
      # using space separators

      edit_field => quotedvar("$(add_modules)","append");

      "APACHE_MODULES=.*"

      # Delte module "columns" between the quoted RHS 
      # using space separators

      edit_field => quotedvar("$(del_modules)","delete");

      # if this line already exists, edit it  
}

########################################
# Bodies
########################################

body edit_field quotedvar(newval,method)

{
      field_separator => "\"";
      select_field    => "2";
      value_separator  => " ";
      field_value     => "$(newval)";
      field_operation => "$(method)";
      extend_fields => "false";
      allow_blank_fields => "true";
}

