diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2020-03-27 20:53:45 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2022-05-01 23:58:14 -0400 |
commit | 5faac3e6a166a12a3a0cbb50be21a73632725651 (patch) | |
tree | f3118df3aecf2dc9f9f6013102f1c1d664599f53 /configs/profile/root-image/root/.language.sh | |
parent | 640513f18fec15f24fedf43eb8e86dfae6530637 (diff) |
consolidate install wizards into unified implementation
this is admitedly a huge change, nearly a total re-write
the original scripts were very brittle and redundant
even without functional changes, a DRY refactoring
would have been nearly as massive
the functional changes for rubustness, were also quite significant
it would not have been feasibe to break them down
* consolidated all per-init and per-language scripts sets into one
* extracted translatable strings into separate file
* remvoed confusing main menu, in favor of sequential prompts
* better error handling and logging
* added cfdisk support for CLI ISOs (GUI ISO still launches gparted)
* ensure that all target partitions are formatted
Diffstat (limited to 'configs/profile/root-image/root/.language.sh')
-rwxr-xr-x | configs/profile/root-image/root/.language.sh | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/configs/profile/root-image/root/.language.sh b/configs/profile/root-image/root/.language.sh deleted file mode 100755 index bc8e9f5..0000000 --- a/configs/profile/root-image/root/.language.sh +++ /dev/null @@ -1,209 +0,0 @@ -#!/bin/bash - -readonly TIMEOUT=30 -readonly H=15 -readonly W=40 -readonly N_ITEMS=10 - -readonly LANG_TITLE="System language selection" -readonly LANG_PROMPT="Choose your language:" -readonly LANG_DEFAULT='en_US.UTF-8' -readonly KEYMAP_TITLE="System keymap selection" -readonly KEYMAP_PROMPT="Choose your keymap:" -readonly KEYMAP_DEFAULT='us' -readonly INTERFACE_TITLE="Launch installer or command-line" -readonly INTERFACE_PROMPT="Would you like to start the installer, or drop onto the command line?" -readonly INTERFACE_DEFAULT='calamares' -readonly INTERFACES=( 'calamares' 'wizard' 'cli' ) - -readonly -a LANGUAGES=( 'en_US.UTF-8' "English" \ - 'eo' "Esperanto" \ - 'fr_FR.UTF-8' "French" \ - 'gl_ES.UTF-8' "Galego" \ - 'it_IT.UTF-8' "Italian" \ - 'pl_PL.UTF-8' "Polish" \ - 'pt_BR.UTF-8' "Portuguese" \ - 'es_ES.UTF-8' "Spanish" ) -readonly -a ESPERANTO_LANG_PACKS=( 'iceweasel-l10n-es-eo' ) -readonly -a SPANISH_LANG_PACKS=( 'iceweasel-l10n-es-ar' 'icedove-l10n-es-ar' - 'iceweasel-l10n-es-cl' - 'iceweasel-l10n-es-es' 'icedove-l10n-es-es' - 'iceweasel-l10n-es-mx' ) -readonly -a FRENCH_LANG_PACKS=( 'iceweasel-l10n-fr' 'icedove-l10n-fr' ) -readonly -a GALEGO_LANG_PACKS=( 'iceweasel-l10n-gl' 'icedove-l10n-gl' ) -readonly -a ITALIAN_LANG_PACKS=( 'iceweasel-l10n-it' 'icedove-l10n-it' ) -readonly -a POLISH_LANG_PACKS=( 'iceweasel-l10n-pl' 'icedove-l10n-pl' ) -readonly -a PORTUGUESE_LANG_PACKS=( 'iceweasel-l10n-pt-br' 'icedove-l10n-pt-br' ) - -readonly -a KEYMAPS=( 'af' "Afrikaans-Lang" \ - 'al' "Albanian" \ - 'am' "Amharic" \ - 'ara' "Arabic" \ - 'at' "at" \ - 'au' "au" \ - 'az' "Azerbaijani" \ - 'ba' "Bashkir" \ - 'be' "Belarusian" \ - 'bg' "Bulgarian" \ - 'bn' "Bihari-Languages" \ - 'br' "Breton" \ - 'brai' "brai" \ - 'bt' "bt" \ - 'bw' "bw" \ - 'by' "by" \ - 'ca' "Catalan" \ - 'cd' "cd" \ - 'ch' "Chamorro" \ - 'cm' "cm" \ - 'cn' "cn" \ - 'cz' "Czech" \ - 'de' "German" \ - 'dk' "dk" \ - 'dz' "Dzongkha" \ - 'ee' "Ewe" \ - 'epo' "Esperanto" \ - 'es' "Spanish" \ - 'et' "Estonian" \ - 'fi' "Finnish" \ - 'fo' "Faroese" \ - 'fr' "French" \ - 'gb' "gb" \ - 'ge' "ge" \ - 'gh' "gh" \ - 'gn' "GuaranĂ" \ - 'gr' "gr" \ - 'hr' "Croatian" \ - 'hu' "Hungarian" \ - 'id' "Indonesian" \ - 'ie' "Interlingue" \ - 'il' "il" \ - 'in' "in" \ - 'iq' "iq" \ - 'ir' "ir" \ - 'is' "Icelandic" \ - 'it' "Italian" \ - 'jp' "Japanese" \ - 'ke' "ke" \ - 'kg' "Kongo" \ - 'kh' "kh" \ - 'kr' "Kanuri" \ - 'kz' "kz" \ - 'la' "Latin" \ - 'latam' "Latin-American" \ - 'lk' "lk" \ - 'lt' "Lithuanian" \ - 'lv' "Latvian" \ - 'ma' "ma" \ - 'mao' "Maori" \ - 'md' "md" \ - 'me' "me" \ - 'mk' "Macedonian" \ - 'ml' "Malayalam" \ - 'mm' "mm" \ - 'mn' "Mongolian" \ - 'mt' "Maltese" \ - 'mv' "mv" \ - 'my' "Burmese" \ - 'nec_vndr/jp' "nec_vndr/jp" \ - 'ng' "Ndonga" \ - 'nl' "Dutch" \ - 'no' "Norwegian" \ - 'np' "np" \ - 'ph' "ph" \ - 'pk' "pk" \ - 'pl' "Polish" \ - 'pt' "Portuguese" \ - 'ro' "Romanian" \ - 'rs' "rs" \ - 'ru' "Russian" \ - 'se' "Northern-Sami" \ - 'si' "Sinhala" \ - 'sk' "Slovak" \ - 'sn' "Shona" \ - 'sy' "sy" \ - 'tg' "Tajik" \ - 'th' "Thai" \ - 'tj' "tj" \ - 'tm' "tm" \ - 'tr' "Turkish" \ - 'tw' "Twi" \ - 'tz' "tz" \ - 'ua' "ua" \ - 'us' "English" \ - 'uz' "Uzbek" \ - 'vn' "vn" \ - 'za' "Zhuang" ) -readonly -a INSTALLER_DIRS=( './.install-openrc-lxde/packages' \ - './.install-systemd-mate/packages' ) - - -Prompt() # (title , prompt , default_option , options) -{ - declare -l title=$1 - declare -l prompt=$2 - declare -l default_option=$3 - declare -l options="${@:4}" - - dialog --backtitle "$title" --stdout --no-tags --no-cancel --timeout $TIMEOUT \ - --default-item $default_option --menu "$prompt" $H $W $N_ITEMS $options -} - - -## prompt for language if not already selected ## - -language=$(grep 'LANG=' /root/.codecheck | cut -d '=' -f 2) -if [ "${language// /}" == '_UNDEFINED_' ] -then language=$(Prompt "$LANG_TITLE" "$LANG_PROMPT" $LANG_DEFAULT "${LANGUAGES[@]}") - [ "${language}" == "" ] && language=$LANG_DEFAULT - logger "$0: selected language='$language'" - - # prepare locale - echo "LANG=${language}" > /etc/locale.conf - - # prepare language-specific install wizard - language=${language/_*/} - for init_de in `ls -d /root/.install-* | sed 's|/root/\.install-\(.*\)|\1|'` - do ls /root/.install-${init_de}/language/${language}/ &> /dev/null || language='en' - cp -a /root/.install-${init_de}/language/${language}/* /root/.install-${init_de}/ - done - - # include language-specific language packs in the install wizard package set - for installer_dir in ${INSTALLER_DIRS[@]} - do case ${language} in - 'eo') echo "${ESPERANTO_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'fr') echo "${FRENCH_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'gl') echo "${GALEGO_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'it') echo "${ITALIAN_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'pl') echo "${POLISH_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'pt') echo "${PORTUGUESE_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - 'es') echo "${SPANISH_LANG_PACKS[@]}" >> ${installer_dir}/packages ;; - esac - done - - # confirm this selection - sed -i "s/^LANG=.*/LANG=${language}/" /root/.codecheck -fi - - -## prompt for X11 keymap if not already selected ## - -keymap=$(grep 'XKBMAP=' /root/.codecheck | cut -d '=' -f 2) -if [ "${keymap// /}" == '_UNDEFINED_' ] -then keymap=$(Prompt "$KEYMAP_TITLE" "$KEYMAP_PROMPT" $KEYMAP_DEFAULT "${KEYMAPS[@]}") - [ "${keymap}" == "" ] && keymap=$KEYMAP_DEFAULT - logger "$0: selected keymap='$keymap'" - - # set keymap - setxkbmap ${keymap} 2> /dev/null - - # confirm this selection - sed -i "s/^XKBMAP=.*/XKBMAP=${keymap}/" /root/.codecheck -fi - - -## prompt to launch installer or CLI ## - -interface=$(Prompt "$INTERFACE_TITLE" "$INTERFACE_PROMPT" $INTERFACE_DEFAULT "${INTERFACES[@]}") -[ "${interface}" == "" ] && interface=$INTERFACE_DEFAULT - -clear |