From e42561f3c1a05502c2091d7c1c0472819ff9b1bd Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:06:14 +0200 Subject: [PATCH 01/10] locale/split --- spcd/bootstrap.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 55f8f3b..84f9a05 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -387,7 +387,9 @@ spcd_txt_locale() { "LC_TIME" \ "LC_COLLATE" \ "LC_MONETARY" \ - "LC_MESSAGES" \ + "LC_MESSAGES" + set -- \ + "${@}" \ "LC_PAPER" \ "LC_NAME" \ "LC_ADDRESS" \ From 194ff1b177cf09ea07e8dc08535e70daba6cdf64 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:21:28 +0200 Subject: [PATCH 02/10] rewrite locale --- spcd/bootstrap.sh | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 84f9a05..4dd5e40 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -396,25 +396,33 @@ spcd_txt_locale() { "LC_TELEPHONE" \ "LC_MEASUREMENT" \ "LC_IDENTIFICATION" - local value name - if [ "${action}" = "set" ]; then + local name + case "${action}" in + "list") + if ! locale; then + for name in "${@}"; do + spcd_os_printenv "${name}" + done + fi + ;; + "set") + spcd_txt_locale "list" + spcd_split + local value if [ -n "${locale}" ]; then value="${locale}" else value="${_SPCD_TXT_LOCALE_DEFAULT}" fi value="${value}.${_SPCD_TXT_CHARSET}" - fi - for name in "${@}"; do - case "${action}" in - "list") spcd_os_printenv "${name}" ;; - "set") export "${name}=${value}" ;; - *) ;; - esac - done - if [ "${action}" = "set" ]; then + for name in "${@}"; do + export "${name}=${value}" + done + spcd_split spcd_txt_locale "list" - fi + ;; + *) ;; + esac } spcd_txt_locales_echo() { From d592c30ffd539d5f2b4ec8cc952a755458e4ee3c Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:23:15 +0200 Subject: [PATCH 03/10] mv --- spcd/bootstrap.sh | 96 +++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 4dd5e40..1e00290 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -377,54 +377,6 @@ spcd_txt_get() { esac } -spcd_txt_locale() { - local action="${1}" - local locale="${2}" - set -- \ - "LANG" \ - "LC_CTYPE" \ - "LC_NUMERIC" \ - "LC_TIME" \ - "LC_COLLATE" \ - "LC_MONETARY" \ - "LC_MESSAGES" - set -- \ - "${@}" \ - "LC_PAPER" \ - "LC_NAME" \ - "LC_ADDRESS" \ - "LC_TELEPHONE" \ - "LC_MEASUREMENT" \ - "LC_IDENTIFICATION" - local name - case "${action}" in - "list") - if ! locale; then - for name in "${@}"; do - spcd_os_printenv "${name}" - done - fi - ;; - "set") - spcd_txt_locale "list" - spcd_split - local value - if [ -n "${locale}" ]; then - value="${locale}" - else - value="${_SPCD_TXT_LOCALE_DEFAULT}" - fi - value="${value}.${_SPCD_TXT_CHARSET}" - for name in "${@}"; do - export "${name}=${value}" - done - spcd_split - spcd_txt_locale "list" - ;; - *) ;; - esac -} - spcd_txt_locales_echo() { spcd_os_printenv "LANGUAGE" locale --all-locales @@ -951,6 +903,54 @@ spcd_query_package() { esac } +spcd_txt_locale() { + local action="${1}" + local locale="${2}" + set -- \ + "LANG" \ + "LC_CTYPE" \ + "LC_NUMERIC" \ + "LC_TIME" \ + "LC_COLLATE" \ + "LC_MONETARY" \ + "LC_MESSAGES" + set -- \ + "${@}" \ + "LC_PAPER" \ + "LC_NAME" \ + "LC_ADDRESS" \ + "LC_TELEPHONE" \ + "LC_MEASUREMENT" \ + "LC_IDENTIFICATION" + local name + case "${action}" in + "list") + if ! locale; then + for name in "${@}"; do + spcd_os_printenv "${name}" + done + fi + ;; + "set") + spcd_txt_locale "list" + spcd_split + local value + if [ -n "${locale}" ]; then + value="${locale}" + else + value="${_SPCD_TXT_LOCALE_DEFAULT}" + fi + value="${value}.${_SPCD_TXT_CHARSET}" + for name in "${@}"; do + export "${name}=${value}" + done + spcd_split + spcd_txt_locale "list" + ;; + *) ;; + esac +} + # ╭──────┬─────╮ # │ step │ dns │ # ╰──────┴─────╯ From 84c0885f1fcca62823e5ce503aada81b14d86858 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:25:32 +0200 Subject: [PATCH 04/10] locale/alpine --- spcd/bootstrap.sh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 1e00290..a80e0f8 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -914,14 +914,19 @@ spcd_txt_locale() { "LC_COLLATE" \ "LC_MONETARY" \ "LC_MESSAGES" - set -- \ - "${@}" \ - "LC_PAPER" \ - "LC_NAME" \ - "LC_ADDRESS" \ - "LC_TELEPHONE" \ - "LC_MEASUREMENT" \ - "LC_IDENTIFICATION" + case "${SPCD_OS_ID}" in + "${SPCD_OS_ALPINE}") ;; + *) + set -- \ + "${@}" \ + "LC_PAPER" \ + "LC_NAME" \ + "LC_ADDRESS" \ + "LC_TELEPHONE" \ + "LC_MEASUREMENT" \ + "LC_IDENTIFICATION" + ;; + esac local name case "${action}" in "list") From 56b9215ef37f4a348a239e9c3ba57f5a9fa78acf Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:26:17 +0200 Subject: [PATCH 05/10] command --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index f52cdc3..f84fb31 100644 --- a/readme.md +++ b/readme.md @@ -221,6 +221,7 @@ Handle project workflows in a unified way: #### Shell +* command to echo & run * comment * handle errors * packages From 44f68bcca23d9604d4a27f278e26474e9aae7308 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:41:43 +0200 Subject: [PATCH 06/10] transfer language --- spcd/bootstrap.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index a80e0f8..48c0d67 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -905,7 +905,7 @@ spcd_query_package() { spcd_txt_locale() { local action="${1}" - local locale="${2}" + local chosen="${2}" set -- \ "LANG" \ "LC_CTYPE" \ @@ -919,6 +919,7 @@ spcd_txt_locale() { *) set -- \ "${@}" \ + "LANGUAGE" \ "LC_PAPER" \ "LC_NAME" \ "LC_ADDRESS" \ @@ -939,15 +940,19 @@ spcd_txt_locale() { "set") spcd_txt_locale "list" spcd_split - local value - if [ -n "${locale}" ]; then - value="${locale}" + local locale long + if [ -n "${chosen}" ]; then + locale="${chosen}" else - value="${_SPCD_TXT_LOCALE_DEFAULT}" + locale="${_SPCD_TXT_LOCALE_DEFAULT}" fi - value="${value}.${_SPCD_TXT_CHARSET}" + long="${locale}.${_SPCD_TXT_CHARSET}" for name in "${@}"; do - export "${name}=${value}" + if [ "${name}" != "LANGUAGE" ]; then + export "${name}=${long}" + else + export "${name}=${locale}" + fi done spcd_split spcd_txt_locale "list" From dc51f1eba6f4f83a8577bc3cb0bbd86cb238a182 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 14:44:39 +0200 Subject: [PATCH 07/10] mv --- spcd/bootstrap.sh | 84 +++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 48c0d67..be162b6 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -377,48 +377,6 @@ spcd_txt_get() { esac } -spcd_txt_locales_echo() { - spcd_os_printenv "LANGUAGE" - locale --all-locales -} - -spcd_txt_locales() { - set -- \ - "${SPCD_TXT_LOCALE_ENGLISH}" \ - "${SPCD_TXT_LOCALE_FRENCH}" - local language locale text - spcd_txt_locales_echo - spcd_split - for locale in "${@}"; do - case "${1}" in - "glibc-langpack-") - language="$(echo "${locale}" | cut -d _ -f 1)" - spcd_install_package "glibc-langpack-${language}" - ;; - "LANGUAGE") - if [ -n "${text}" ]; then - text="${text}:${locale}" - else - text="${locale}" - fi - ;; - "locale.gen") - text="${text}\ -${locale}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} -" - ;; - *) ;; - esac - done - case "${1}" in - "LANGUAGE") export LANGUAGE="${text}" ;; - "locale.gen") spcd_os_write "/etc/locale.gen" "${text}" ;; - *) ;; - esac - spcd_split - spcd_txt_locales_echo -} - # ╭──────╮ # │ step │ # ╰──────╯ @@ -961,6 +919,48 @@ spcd_txt_locale() { esac } +spcd_txt_locales_echo() { + spcd_os_printenv "LANGUAGE" + locale --all-locales +} + +spcd_txt_locales() { + set -- \ + "${SPCD_TXT_LOCALE_ENGLISH}" \ + "${SPCD_TXT_LOCALE_FRENCH}" + local language locale text + spcd_txt_locales_echo + spcd_split + for locale in "${@}"; do + case "${1}" in + "glibc-langpack-") + language="$(echo "${locale}" | cut -d _ -f 1)" + spcd_install_package "glibc-langpack-${language}" + ;; + "LANGUAGE") + if [ -n "${text}" ]; then + text="${text}:${locale}" + else + text="${locale}" + fi + ;; + "locale.gen") + text="${text}\ +${locale}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} +" + ;; + *) ;; + esac + done + case "${1}" in + "LANGUAGE") export LANGUAGE="${text}" ;; + "locale.gen") spcd_os_write "/etc/locale.gen" "${text}" ;; + *) ;; + esac + spcd_split + spcd_txt_locales_echo +} + # ╭──────┬─────╮ # │ step │ dns │ # ╰──────┴─────╯ From 17736082156338a92912b72b2ff91396d364e1d4 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 15:22:03 +0200 Subject: [PATCH 08/10] rewrite locales --- spcd/bootstrap.sh | 78 +++++++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 30 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index be162b6..75a09f1 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -919,46 +919,64 @@ spcd_txt_locale() { esac } -spcd_txt_locales_echo() { - spcd_os_printenv "LANGUAGE" - locale --all-locales -} - spcd_txt_locales() { + local action="${1}" + local chosen="${2}" set -- \ "${SPCD_TXT_LOCALE_ENGLISH}" \ "${SPCD_TXT_LOCALE_FRENCH}" - local language locale text - spcd_txt_locales_echo - spcd_split - for locale in "${@}"; do - case "${1}" in - "glibc-langpack-") - language="$(echo "${locale}" | cut -d _ -f 1)" - spcd_install_package "glibc-langpack-${language}" - ;; - "LANGUAGE") - if [ -n "${text}" ]; then - text="${text}:${locale}" - else - text="${locale}" - fi - ;; - "locale.gen") - text="${text}\ -${locale}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} + local name + case "${action}" in + "install") + spcd_txt_locales "list" + spcd_split + case "${SPCD_PM}" in + "${SPCD_PM_APK}") spcd_install_package "musl-locales" ;; + "${SPCD_PM_APT}") + local text + for name in "${@}"; do + text="${text}\ +${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} " + done + spcd_os_write "/etc/locale.gen" "${text}" ;; + "${SPCD_PM_DNF}") + local language + for name in "${@}"; do + language="$(echo "${name}" | cut -d _ -f 1)" + spcd_install_package "glibc-langpack-${language}" + done + ;; + "${SPCD_PM_PACMAN}") spcd_install_package "glibc-locales" ;; + "${SPCD_PM_ZYPPER}") spcd_install_package "glibc-locale" ;; *) ;; esac - done - case "${1}" in - "LANGUAGE") export LANGUAGE="${text}" ;; - "locale.gen") spcd_os_write "/etc/locale.gen" "${text}" ;; + spcd_split + spcd_txt_locales "list" + ;; + "language") + local text + if [ -n "${chosen}" ]; then + text="${chosen}" + fi + for name in "${@}"; do + if [ "${name}" != "${chosen}" ]; then + if [ -n "${text}" ]; then + text="${text}:${name}" + else + text="${name}" + fi + fi + done + ;; + "list") + if ! locale --all-locales; then + echo "No locales yet!" + fi + ;; *) ;; esac - spcd_split - spcd_txt_locales_echo } # ╭──────┬─────╮ From aac5e65650b52bf058568f988225c23d4db16a3a Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 15:27:21 +0200 Subject: [PATCH 09/10] fix locales --- spcd/bootstrap.sh | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 75a09f1..38dd88d 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -940,6 +940,7 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} " done spcd_os_write "/etc/locale.gen" "${text}" + spcd_install_package "locales" ;; "${SPCD_PM_DNF}") local language @@ -1286,20 +1287,7 @@ spcd_step__packages_verify_https() { spcd_step__packages_install_locales() { spcd_step "Install locales" - case "${SPCD_PM}" in - "${SPCD_PM_APK}") spcd_install_package "musl-locales" ;; - "${SPCD_PM_APT}") - spcd_txt_locales "locale.gen" - spcd_install_package "locales" - ;; - "${SPCD_PM_DNF}") - spcd_txt_locales "glibc-langpack-" - ;; - "${SPCD_PM_PACMAN}") spcd_install_package "glibc-locales" ;; - "${SPCD_PM_ZYPPER}") spcd_install_package "glibc-locale" ;; - *) ;; - esac - spcd_txt_locales "LANGUAGE" + spcd_txt_locales "install" spcd_txt_locale "set" "${SPCD_TXT_LOCALE}" } From 5d9100a39b516468a28df3c000d22b241cf5fbd0 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 4 Sep 2024 15:29:43 +0200 Subject: [PATCH 10/10] locale/language --- spcd/bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 38dd88d..bef0c18 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -909,7 +909,7 @@ spcd_txt_locale() { if [ "${name}" != "LANGUAGE" ]; then export "${name}=${long}" else - export "${name}=${locale}" + export "${name}=$(spcd_txt_locales language "${chosen}")" fi done spcd_split