+# backup_conf()
+#
+# Backup configuration files located in specified directory.
+#
+backup_conf () {
+ local dir file backup_dir
+
+ dir="$1"
+
+ if [ -d "${dir}" ] && [ -n "$(ls -A ${dir}/)" ]; then
+ cp_echo "CN: Doing backup for all files in $dir"
+ for file in ${dir}/*; do
+ if [ -f "$file" ]; then
+ if [ -z "$(echo $file | egrep '^/.*~')" ]; then
+ backup_dir="$BACKUPDIR/$(basename $(dirname "$file"))"
+ cp_backup_conffile -d "$backup_dir" -p "$file"
+ fi
+ fi
+ done
+ fi
+}
+
+# move_conf()
+#
+# Move configuration files from one directory to another. The .conf suffix
+# will be added. Will try to enable the configuration if -e is specified.
+#
+move_conf () {
+ local toenable ctype dir newdir file newfile
+
+ if [ "$1" = "-e" ]; then
+ toenable="$1"
+ shift
+ fi
+
+ ctype="$1"
+ dir="$2"
+ newdir="$3"
+
+ case "$ctype" in
+ site|conf)
+ # continue below
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+
+ if [ -z "$newdir" ]; then
+ newdir="$dir"
+ fi
+
+ if [ -d "${dir}" ] && [ -n "$(ls -A ${dir}/)" ]; then
+ mkdir -p "$newdir"
+ for file in ${dir}/*; do
+ newfile="${newdir}/$(basename "$file" .conf).conf"
+ if [ ! -e "$newfile" ]; then
+ cp_echo "CN: Preserving changes to $newfile (renamed from $file)."
+ cp_mv "$file" "$newfile"
+ if [ -n "$toenable" ]; then
+ cp_echo "CN: Enabling configuration $newfile"
+ a2en$ctype -m -q "$(basename "$newfile" .conf)" || true
+ fi
+ need_restart=1
+ fi
+ done
+ fi
+}
+
+# rename_conf()
+#
+# Append the .conf suffix to all configuration files located in specified
+# available and enabled directories. Updated symlinks if necessary.
+#
+#
+rename_conf () {
+ local ctype adir edir afile efile newfile
+
+ ctype="$1"
+ adir="$2"
+ edir="$3"
+
+ case "$ctype" in
+ site|conf)
+ # continue below
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+
+ if [ -d "${edir}" ] && [ -n "$(ls -A ${edir}/)" ]; then
+ mkdir -p "$adir"
+ for efile in ${edir}/*; do
+ [ ! -e "${edir}/$(basename "$efile" .conf).conf" ] || continue
+
+ afile="$(readlink -q -m "$efile")"
+
+ [ "$(dirname "$afile")" = "$adir" ] || continue
+ [ "$(basename "$afile" .conf)" = "$(basename "$efile" .conf)" ] || continue
+
+ newfile="${adir}/$(basename "$afile" .conf).conf"
+ [ ! -e "$newfile" ] || continue
+
+ cp_echo "CN: Preserving changes to $newfile (renamed from $afile)."
+ cp_mv "$afile" "$newfile"
+
+ cp_echo "CN: Removing obsolete symlink $efile"
+ rm -f "$efile"
+
+ cp_echo "CN: Enabling configuration $newfile"
+ a2en$ctype -m -q "$(basename "$newfile" .conf)" || true
+ need_restart=1
+ done
+ fi
+}
+