#!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin . /usr/lib/libmodcgi.sh swap_file=$(httpd -d "$(echo "$QUERY_STRING" | sed -e 's/^.*swap_file=//' -e 's/&.*$//' -e 's/\.//g')") swap_size=$(httpd -d "$(echo "$QUERY_STRING" | sed -e 's/^.*swap_size=//' -e 's/&.*$//' -e 's/\.//g')") size=$(echo "$swap_size" | sed -re "s/^ *([0-9]+) $/\1/") error=true # redirect stderr to stdout so we see ouput in webif exec 2>&1 cgi_begin "$(lang de:"Erstellen der Swap-Datei..." en:"Creation of swapfile...")" echo -n "
"

if [ -z "$swap_size" ]; then
	echo "$(lang de:"Fehler: Bitte die Größe der Swap-Datei (in MB, zwischen 1 und 128) angeben" en:"Error: Please specifiy size of swapfile (in MB, between 1 and 128)")."
elif [ -z "$swap_file" ]; then
	echo "$(lang de:"Fehler: Bitte den Pfad der Swap-Datei angeben" en:"Error: Please specify path of swapfile")."
elif [ -e "$swap_file" ]; then
	echo "$(lang de:"Fehler: Die angegebene Datei existiert bereits" en:"Error: The file specified does already exist.")."
elif [ 1 -gt "$size" -o 128 -lt "$size" ]; then
	echo "$(lang de:"Fehler: Die Größe der Swap-Datei muss zwischen 1 und 128 MB liegen" en:"Error: Size of swapfile must be between 1 and 128 MB")."
else
	echo "$(lang de:"Erstelle leere Datei..." en:"Creating empty file...")"
	{
		sleep 2
		while killall -USR1 dd > /dev/null 2>&1; do
			sleep 5
		done
	} &
	sleep 1 
	if dd if=/dev/zero of="$swap_file" bs=1M count=$size; then
		echo "$(lang de:"Bereite Datei für Swap-Benutzung vor..." en:"Preparing file for swap usage...")"
		if mkswap "$swap_file"; then
			error=false
		else
			echo "$(lang de:"Erstellen der Swap-Datei fehlgeschlagen." en:"Swap file creation failed.")"
		fi
	else
		echo "$(lang de:"Erstellen der Swap-Datei fehlgeschlagen." en:"Swap file creation failed.")"
	fi
fi

echo '
' if $error; then cat << EOF

$(lang de:"Swap-Datei" en:"Swapfile"):

MB

EOF else echo '

$(lang de:"Zum Aktivieren der Swap-Datei müßen die Einstellungen noch gespeichert werden." en:"To activate swapfile, settings must be saved.")

' fi echo -n '

' cgi_end