--- localepurge.conf.orig 2014-02-04 18:17:32.554174127 +0100 +++ localepurge.conf 2014-02-04 18:21:08.911092875 +0100 @@ -2,26 +2,11 @@ set -e -. /usr/share/debconf/confmodule - # first get all possible locales and create a full list of locale values: -CONFIG_FILE="/etc/locale.nopurge" TEMPFILE="$(mktemp --suffix ".locales")" LOCALELIST=/var/cache/localepurge/localelist -conf_has_key() { - local key="$1" - - if [ -f "$CONFIG_FILE" ] && fgrep --quiet --line-regexp \ - "$key" "$CONFIG_FILE"; then - echo "true" - else - echo "false" - fi -} - - # for the purpose of presenting a ready made preselection at the very first # configuration, include already configured locales from locales package: @@ -46,9 +31,7 @@ # include locales supported by the locales package: -if [ -f /usr/share/i18n/SUPPORTED ]; then - grep ^[a-z] /usr/share/i18n/SUPPORTED | cut -d' ' -f1 | sort -u >> "$TEMPFILE" -fi +find /usr/share/locale -maxdepth 1 -type d -name "*" -printf "%f\n" | grep "^[a-z]" | cut -d" " -f1 | sort -u >> "$TEMPFILE" # include locales from our previous localelist if it already exists: @@ -59,8 +42,7 @@ # include locales from newly added locales: NEWLOCALELIST="$LOCALELIST"-new -if [ -f "$NEWLOCALELIST" ] && \ - [ $(ps w -p "$PPID" | grep -c dpkg-reconfigure) = "1" ]; then +if [ -f "$NEWLOCALELIST" ]; then cat "$NEWLOCALELIST" >> "$TEMPFILE" rm -f "$NEWLOCALELIST" fi @@ -79,96 +61,9 @@ else mv "$LOCALELIST" "$LOCALELIST"-old sort -u "$TEMPFILE" > "$LOCALELIST" -fi - -# finally sort and create full list of all collected locale names - -LOCALES=$(sort -u "$TEMPFILE" | tr '\n' ' ' \ - | sed 's/\ /,\ /g' | sed 's/,\ $//g') - -if [ -f "$CONFIG_FILE" ] ; then - # Update the debconf database - PRESELECT="$(grep --extended-regexp '^[[:lower:]][[:lower:]]' \ - "$CONFIG_FILE" | tr '\n' ' ' | sed 's/\ /,\ /g' | \ - sed 's/,\ $//g')" - db_set localepurge/nopurge "$PRESELECT" - - db_set localepurge/use-dpkg-feature "$(conf_has_key USE_DPKG)" - db_set localepurge/mandelete "$(conf_has_key MANDELETE)" - db_set localepurge/dontbothernew "$(conf_has_key DONTBOTHERNEWLOCALE)" - db_set localepurge/showfreedspace "$(conf_has_key SHOWFREEDSPACE)" - db_set localepurge/quickndirtycalc "$(conf_has_key QUICKNDIRTYCALC)" - db_set localepurge/verbose "$(conf_has_key VERBOSE)" - -else - - # sort and create preselection values from "$LOCALEGEN" - - PRESELECT=$(sort -u "$LOCALEGEN" | tr '\n' ' ' \ - | sed 's/\ /,\ /g' | sed 's/,\ $//g') fi # deleting temporary files not needed anymore: rm -f "$TEMPFILE" "$LOCALEGEN" -############################################################# -# now that all locale data is in place let debconf take over: - -db_subst localepurge/nopurge locales "$LOCALES" - -# uncomment for debugging: -#echo "$LOCALES" > /tmp/locales.list - -db_get localepurge/nopurge -if [ "$RET" = "" ] && [ "$RET" != "PURGE_ALL" ] \ - || [ "$RET" = "NEEDSCONFIGFIRST" ]; then - db_set localepurge/nopurge "$PRESELECT" - db_fset localepurge/nopurge seen false - # uncomment for debugging: - #echo "$PRESELECT" > /tmp/preselect.list -fi - -db_input high localepurge/nopurge || true -db_go - -db_get localepurge/nopurge -if [ "$RET" = "" ] || [ "$RET" = "PURGE_ALL" ]; then - db_input high localepurge/none_selected || true - db_go - - db_get localepurge/none_selected - if [ "$RET" = "false" ]; then - db_input high localepurge/remove_no || true - db_go - fi -fi - -db_input high localepurge/use-dpkg-feature || true -db_go -if [ "$RET" = "" -o "$RET" = "true" ] ; then - USE_DPKG=yes -else - USE_DPKG=no -fi - -db_input medium localepurge/mandelete || true -db_go - -if [ "$USE_DPKG" = "xno" ] ; then - # Features incompatible with the dpkg approach. - db_input medium localepurge/dontbothernew || true - db_go - - db_input low localepurge/showfreedspace || true - db_go - - db_get localepurge/showfreedspace - if [ "$RET" = "true" ]; then - db_input low localepurge/quickndirtycalc || true - db_go - fi - - db_input low localepurge/verbose || true - db_go -fi