Talk:Crontab Manager

From SME Server
Jump to navigationJump to search

Convert to UTF8

This contrib was developed with a non utf8 format to convert it safely after installation if you are unable to access to the server-manager panel, as root:

cd ~
wget http://smeserver.pialasse.com/fichiers/convert_utf-8.sh
sh convert_utf-8.sh

The convert_utf-8.sh file contents are as below:

#!/bin/bash
# Script to convert SME server panel to UTF-8
# original author  yythoss walter.thoss@swt-online.de
# last auhtor : Jean-Philippe Pialasse aka Unnilennium tests@pialasse.com
# licence GPL
#
#History
# 2008-06-07 
# - added check with iconv to allow to run script as often as you need
# - added incremental backup of the locals 

# charset UTF-8
to=$(echo "UTF-8" | tr '[[:upper:]]' '[[:lower:]]')

# function to convert
function code() {
    count=0
    for f in ${files[*]}; do
        count=$(( $count + 1))
	# check if the file is explicitly  declared to be in utf8
        type="$(file "$f" | sed 's/^.*:\s\(UTF-8\|ASCII\)\s.*/\1/' | tr '[[:upper:]]' '[[:lower:]]')"
	# check if the file is in utf8 => return an error if not in UTF8
	converted="$(iconv -f UTF-8 -t UTF-8 --output=/dev/null $f 2>&1 )"
        # if the file is declared to be utf8 do nothing
	if [ "$type" = "$to" ]; then
            echo -n "$count: $f is already $to! => done."
	    echo
	# if the file is already in utf8 do nothing     
	elif [ "$converted" = "" ] ; then
	    echo -n "$count: $f was already converted using this script $to! => nothing to do."
	    echo 
	# else you can do the job    
        else
            case $type in
                *iso-8859*)
                echo -n "$count: Recode now $f to $to!"
		echo  
                iconv -f "ISO-8859-1" -t "$to" "$f" > "${f}.${to}"
                mv "${f}.${to}" "$f"
                [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." 
                ;;
                *ascii*)
                echo -n "$count: Recode now $f to $to!"
		echo  
                iconv -f "ascii" -t "$to" "$f" > "${f}.${to}"
                mv "${f}.${to}" "$f"
                [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." 
                ;;
                *sgml*)
                echo -n "$count: Recode now $f to $to!"
		echo  
                iconv -t "$to" "$f" > "${f}.${to}"
                mv "${f}.${to}" "$f"
                [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." 
                ;;
                *)
		echo -n "Format $type not supported!"
		;;
		esac && echo
        fi
    done
}

#save before running
number=$(( $(ls -1 locale*.tgz | wc -l) + 1 ))
tar czf locale$number.tgz /etc/e-smith/locale/*

# search for files ine mains languages (we skipped the link)
# why not using this instead : ls -l /etc/e-smith/locale | grep -v '\->'|awk  '{print $9}'|grep -v ^$
for lang in da de el en-us es fr hu id it nl pt_BR sl sv; do 
	files=$(find "/etc/e-smith/locale/$lang/etc/e-smith/web/functions/" -iname "*" -type f -print)
	code
done

echo -n "Create the new Server Manager Panel..."
/etc/e-smith/events/actions/navigation-conf
echo