Software: Apache/2.2.3 (CentOS). PHP/5.1.6 uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /var/www/html/phpMyAdmin/lang/ drwxr-xr-x |
Viewing file: sync_lang.sh (7.71 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | #!/bin/sh # $Id: sync_lang.sh,v 2.22 2005/12/07 23:03:46 nijel Exp $ ## # Shell script that synchronises all translations in phpMyAdmin ## # Any parameters (except --iconv/--recode) will be passed to grep to filter # processed translation, for example: './sync_lang.sh czech' will process only # czech translation, './sync_lang.sh -e czech -e english' will process czech # and english translations. ## # Written by Michal Cihar <nijel at users.sourceforge.net> ## # Changes: # 2005-12-08 # * less verbose output to allow quick overview # 2005-11-29 # * hack for multibyte chars, so that \'; at the end will not fool PHP # 2004-09-22 # * default to iconv, as it doesn't break things as recode does # 2004-09-03 # * hack for hebrew # 2003-11-18 # * switch php3 -> php # 2003-04-14 # * convert only files that are needed to convert (checks mtime), --force to # avoid this checking # * get charset from filename when reading from file failed # * report failed translations at the end # 2002-09-18 # * now accepts parameters --iconv/--recode for specifying which convertor # to use # 2002-08-13 # * support for synchronisation only for selected language(s) # 2002-07-18 # * can exclude some languages from conversion # 2002-07-17 # * support for multiple convertors (recode added) ## ## # convertor setup ## # CONVERTOR_PARAMS is used for printf and it also receives two params: source # and target charset # case "$1" in --iconv) echo Using iconv on user request CONVERTOR=iconv # the space on following is REQUIRED CONVERTOR_PARAMS=" -f %s -t %s" shift ;; --recode) echo Using recode on user request echo '(please use iconv for arabic)' CONVERTOR=recode CONVERTOR_PARAMS=" -f %s..%s" shift ;; *) echo Using iconv as default, force with --iconv/--recode CONVERTOR=iconv # the space on following is REQUIRED CONVERTOR_PARAMS=" -f %s -t %s" ;; esac if [ "$1" = "--force" ] ; then FORCE=1 shift else FORCE=0 fi ## # names of translations to process ## # Here should be listed all translations for which conversion should be done. # The name is filename without inc.php. # BASE_TRANSLATIONS="afrikaans-iso-8859-1 albanian-iso-8859-1 arabic-windows-1256 azerbaijani-iso-8859-9 basque-iso-8859-1 belarusian_cyrillic-windows-1251 belarusian_latin-utf-8 bosnian-windows-1250 brazilian_portuguese-iso-8859-1 bulgarian-utf-8 catalan-iso-8859-1 chinese_traditional-utf-8 chinese_simplified-gb2312 croatian-iso-8859-2 czech-utf-8 danish-iso-8859-1 dutch-iso-8859-1 english-iso-8859-1 estonian-iso-8859-1 finnish-iso-8859-1 french-iso-8859-1 galician-iso-8859-1 german-utf-8 greek-iso-8859-7 hebrew-iso-8859-8-i hungarian-iso-8859-2 indonesian-iso-8859-1 italian-iso-8859-1 japanese-utf-8 korean-euc-kr latvian-windows-1257 lithuanian-windows-1257 malay-iso-8859-1 norwegian-iso-8859-1 persian-windows-1256 polish-iso-8859-2 portuguese-iso-8859-1 romanian-iso-8859-1 russian-windows-1251 serbian_cyrillic-windows-1251 serbian_latin-windows-1250 slovenian-iso-8859-2 slovak-iso-8859-2 spanish-iso-8859-1 swedish-iso-8859-1 tatarish-iso-8859-9 thai-tis-620 turkish-utf-8 ukrainian-windows-1251" ## # which translations should not be translated to utf-8 ## # List here any translation that should not be converted to utf-8. The name is # same as above. # IGNORE_UTF="" ## # which translations should not be automatically generated ## # List here any translation should not be automatically generated from base # translation for that language (usually for those which are not correctly # supported by convertor). # IGNORE_TRANSLATIONS=" russian-cp-866" ## # end of configuration, you hopefully won't need to edit anything bellow ## TEMPFILE=`mktemp /tmp/pma-sync-lang.XXXXXX` cleanup() { rm -f $TEMPFILE } trap cleanup INT ABRT TERM FAILED="" echo "-------------------------------------------------------------------" # go through all file we should process for base in $BASE_TRANSLATIONS ; do if [ "$#" -gt 0 ] ; then if ( echo $base | grep -q "$@" ) ; then true else continue fi fi # grep language from basename lang=$(echo $base|sed 's%-.*%%') # which files will we create from current? create_files=$(ls --color=none -1 $lang*.inc.php|grep -v $base.inc.php) for ignore in $IGNORE_TRANSLATIONS ; do create_files=$(echo "$create_files" | grep -v $ignore) done # charset of source file src_charset=$(grep '\$charset' $base.inc.php | sed "s%^[^'\"]*['\"]\\([^'\"]*\\)['\"][^'\"]*$%\\1%") replace_charset=$src_charset # special case for hebrew if [ $src_charset = 'iso-8859-8-i' ] ; then src_charset=iso-8859-8 fi echo -n "$base [charset $src_charset]" # do we already have utf-8 translation? if [ $src_charset = 'utf-8' ] ; then is_utf=yes else is_utf=no fi # at first update existing translations for file in $create_files ; do # charset of destination file # grepping from file causes problems when it is empty... charset=$(grep '\$charset' $file | sed "s%^[^'\"]*['\"]\\([^'\"]*\\)['\"][^'\"]*$%\\1%") if [ -z "$charset" ] ; then charset=$(echo $file | sed -e 's/^[^-]*-//' -e 's/\.inc\.php\?$//') fi if [ $charset = 'utf-8' ] ; then is_utf=yes fi # check whether we need to update translation if [ ! "$base.inc.php" -nt "$file" -a "$FORCE" -eq 0 -a -s "$file" ] ; then echo -n " ($file:ok)" continue fi echo -n " ($file:to $charset:" if [ $charset = 'utf-8' ] ; then # if we convert to utf-8, we should add allow_recoding is_utf=yes $CONVERTOR $(printf "$CONVERTOR_PARAMS" $src_charset $charset) < $base.inc.php| sed -e "s/$replace_charset/$charset/" -e '/\$charset/a\ $allow_recoding = TRUE;' > $TEMPFILE elif [ $src_charset = 'utf-8' ] ; then is_utf=yes # if we convert from utf-8, we should remove allow_recoding $CONVERTOR $(printf "$CONVERTOR_PARAMS" $src_charset $charset) < $base.inc.php| grep -v allow_recoding | sed "s/$replace_charset/$charset/" > $TEMPFILE else # just convert $CONVERTOR $(printf "$CONVERTOR_PARAMS" $src_charset $charset) < $base.inc.php| sed "s/$replace_charset/$charset/" > $TEMPFILE fi if [ -s $TEMPFILE ] ; then sed "s/\\\\';[[:space:]]*$/\\\\\\\\';/" $TEMPFILE > $file echo -n 'done)' else FAILED="$FAILED $file" echo -n 'FAILED)' fi done # now check whether we found utf-8 translation if [ $is_utf = no ] ; then if ( echo $IGNORE_UTF | grep -q $base ) ; then # utf-8 should not be created true else # we should create utf-8 translation charset=utf-8 file=$lang-$charset.inc.php echo -n " [$file:$charset:" $CONVERTOR $(printf "$CONVERTOR_PARAMS" $src_charset $charset) < $base.inc.php| sed -e "s/$replace_charset/$charset/" -e '/\$charset/a\ $allow_recoding = TRUE;' > $TEMPFILE if [ -s $TEMPFILE ] ; then cat $TEMPFILE > $file echo -n 'done)' else FAILED="$FAILED $file" echo -n 'FAILED)' fi fi fi echo done echo "-------------------------------------------------------------------" if [ -z "$FAILED" ] ; then echo "Everything seems to went okay" else echo "!!!SOME CONVERSION FAILED!!!" echo "Following file were NOT updated:" echo echo "$FAILED" echo echo "!!!SOME CONVERSION FAILED!!!" fi cleanup |
:: Command execute :: | |
:: Shadow's tricks :D :: | |
Useful Commands
|
:: Preddy's tricks :D :: | |
Php Safe-Mode Bypass (Read Files)
|
--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0232 ]-- |