403Webshell
Server IP : 209.205.66.10  /  Your IP : 216.73.216.173
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ammon 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
User :  ( 1006)
PHP Version : 8.5.8
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/language-tools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/language-tools/update-langlist
#!/bin/sh -pe
#
# update-langlist maintains the LANGUAGE priority list. It does so in
# a simplified manner, unlike the UI in language-selector-gnome for
# setting the user language which provides full control.

first_language=$1
homedir=$2
renewed_langlist=

[ -n "$first_language" -a -n "$homedir" ] || exit 1

is_valid_language() {
    case "$1" in
        ''|*[!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.@+-]*|*:*)
            return 1
            ;;
        *)
            return 0
            ;;
    esac
}

is_valid_language_list() {
    case "$1" in
        ''|*[!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.@:+-]*)
            return 1
            ;;
        *)
            return 0
            ;;
    esac
}

get_old_langlist() {
    if [ -r "$homedir/.pam_environment" ]; then
        while IFS= read -r line || [ -n "$line" ]; do
            if [ "$( printf '%s\n' "${line%%=*}" | sed -r 's/[[:space:]]+DEFAULT$//' )" = 'LANGUAGE' ]; then
                old_langlist=${line#*=}
                is_valid_language_list "$old_langlist" || old_langlist=
                break
            fi
        done < "$homedir/.pam_environment"
    fi
}

is_valid_language "$first_language" || exit 1

old_langlist=
english=true
if [ "${first_language%%[_@]*}" != 'en' ]; then
    get_old_langlist
    english=false
fi

if [ -n "$old_langlist" ] && ! $english; then
    renewed_langlist=$first_language
    old_ifs=$IFS
    IFS=:
    for lang in $old_langlist; do
        [ -n "$lang" ] || continue
        [ "$lang" = "$first_language" ] && continue
        renewed_langlist=$renewed_langlist:$lang
    done
    IFS=$old_ifs
else
    # build fresh list with 'en' as the last element
    # no other languages needed if English was selected
    renewed_langlist=$first_language
    [ "$first_language" != 'en' ] && renewed_langlist=$renewed_langlist:en
fi

printf '%s\n' "$renewed_langlist"


Youez - 2016 - github.com/yon3zu
LinuXploit