403Webshell
Server IP : 103.75.185.95  /  Your IP : 216.73.217.162
Web Server : nginx/1.30.0
System : Linux cs-linux-20260509085757017 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : cuuhootoxema ( 1215)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/sbin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/sbin/update-exim4.conf.template
#!/bin/bash

set -e

CONFDIR="${CONFDIR:-/etc/exim4}"
DONOTRUN='true'

UPEX4CT_outputfile="${CONFDIR}/exim4.conf.template"

usage() {
cat <<EOF
$0 - Generate exim4 configuration file template
       Options:
       -n|--nobackup - Overwrite old template, do not take backup.
       -o|--output file - write output to file instead of ${UPEX4CT_outputfile}
       -h|--help - This message.
       -r|--run - Actually do something
EOF
}

## Parse commandline
TEMP=$(getopt -n update-exim4.conf.template \
	-l nobackup,output:,help,run -- \
	+no:hr "$@")

if test "$?" != 0; then
	echo "Terminating..." >&2
	exit 1
fi

eval set -- ${TEMP}
while test "$1" != "--"; do
	case $1 in
		-h|--help)
			usage
			exit 0
		;;
		-o|--output)
			shift
			UPEX4CT_outputfile="$1"
		;;
		-n|--nobackup)
			NOBACKUP=1
		;;
		-r|--run)
			DONOTRUN='false'
		;;
	esac
	shift
done
shift

# No non-option arguments allowed.
if [ "$#" -ne 0 ]; then
	echo "No non option arguments ($@) allowed" >&2
	usage >&2
	exit 1
fi

# run-parts emulation, stolen from Branden's /etc/X11/Xsession
# Addition: Use file.rul instead if file if it exists.
run_parts () {
	# reset LC_COLLATE
	unset LANG LC_COLLATE LC_ALL

	if [ -z "$1" ]; then
		errormessage "$0: internal run_parts called without an argument"
	fi
	if [ ! -d "$1" ]; then
		errormessage "$0: internal run_parts called, but $1 does not exist or is not a directory."
	fi
  	for F in $(ls $1 | grep -v /.svn); do
		if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
			if [ -f "$1/$F" ] ; then
				if [ -f "$1/${F}.rul" ] ; then
					echo "$1/${F}.rul"
				else
					echo "$1/$F"
				fi
			fi
		fi
	done;
}
# also from Branden
errormessage () {
	# pretty-print messages of arbitrary length (no trailing newline)
	echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
}

cat_parts() {
       if [ -z "$1" ]; then
               errormessage "$0: internal cat_parts called without an argument"
       fi
       if [ ! -d "$1" ]; then
               errormessage "$0: internal cat_parts called, but $1 does not exist or is not a directory."
       fi
       for file in $(run_parts $1); do
               echo "#####################################################"
               echo "### $file"
               echo "#####################################################"
               cat $file
               echo "#####################################################"
               echo "### end $file"
               echo "#####################################################"
       done
}

if [ "$DONOTRUN" = "true" ]; then
	errormessage "This program overwrites conffiles. Do not run unless you have consulted the manpage." >&2
	echo "Terminating..." >&2
	exit 1
fi


if [ -e "${UPEX4CT_outputfile}" ] && [ -z "$NOBACKUP" ]; then
  if [ -e "${UPEX4CT_outputfile}.bak.$$" ]; then
    echo >&2 "ERR: ${UPEX4CT_outputfile}.bak.$$ already exists, aborting"
    exit 1
  fi
fi
 
NEWTEMPLATE=$(mktemp)
if [ -f "${UPEX4CT_outputfile}" ] ; then
	chmod --reference="${UPEX4CT_outputfile}" "$NEWTEMPLATE"
else
	chmod 0644 "$NEWTEMPLATE"
fi

# generate .template. Ugly - better alternative?
SAVEWD="$(pwd)"
cd ${CONFDIR}/conf.d
for i in main acl router transport retry rewrite auth ; do
  cat_parts $i
done > "$NEWTEMPLATE"
cd "$SAVEWD"

if [ -e "${UPEX4CT_outputfile}" ] && [ -z "$NOBACKUP" ] ; then
	mv "${UPEX4CT_outputfile}" \
		"${UPEX4CT_outputfile}.bak.$$"
fi
mv "$NEWTEMPLATE" "${UPEX4CT_outputfile}"

Youez - 2016 - github.com/yon3zu
LinuXploit