-
-
Notifications
You must be signed in to change notification settings - Fork 421
943 Local Setup - Kept Old US Local Setup In place #1344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 4 commits
fd7b8d7
6ca16bd
0083377
c3c28d3
a729863
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| #!/bin/sh -e | ||
|
|
||
| . ../common-script.sh | ||
| . ../common-service-script.sh | ||
|
|
||
| get_suggested_locale() { | ||
| key="$1" | ||
| default_locale="en_US.UTF-8" | ||
|
|
||
| # Use case statement to map keys to values (POSIX standard) | ||
| case "$key" in | ||
| us) echo "en_US.UTF-8" ;; | ||
| uk) echo "en_GB.UTF-8" ;; | ||
| ca) echo "en_CA.UTF-8" ;; | ||
| cf) echo "fr_CA.UTF-8" ;; | ||
| cn) echo "zh_CN.UTF-8" ;; | ||
| by) echo "be_BY.UTF-8" ;; | ||
| cz) echo "cs_CZ.UTF-8" ;; | ||
| de) echo "de_DE.UTF-8" ;; | ||
| dk) echo "da_DK.UTF-8" ;; | ||
| es) echo "es_ES.UTF-8" ;; | ||
| et) echo "et_EE.UTF-8" ;; | ||
| fa) echo "fa_IR.UTF-8" ;; | ||
| fi) echo "fi_FI.UTF-8" ;; | ||
| fr) echo "fr_FR.UTF-8" ;; | ||
| gr) echo "el_GR.UTF-8" ;; | ||
| hu) echo "hu_HU.UTF-8" ;; | ||
| il) echo "he_IL.UTF-8" ;; | ||
| it) echo "it_IT.UTF-8" ;; | ||
| jp) echo "ja_JP.UTF-8" ;; | ||
| kr) echo "ko_KR.UTF-8" ;; | ||
| lt) echo "lt_LT.UTF-8" ;; | ||
| lv) echo "lv_LV.UTF-8" ;; | ||
| mk) echo "mk_MK.UTF-8" ;; | ||
| nl) echo "nl_NL.UTF-8" ;; | ||
| no) echo "nb_NO.UTF-8" ;; | ||
| ph) echo "en_PH.UTF-8" ;; | ||
| pl) echo "pl_PL.UTF-8" ;; | ||
| ro) echo "ro_RO.UTF-8" ;; | ||
| ru) echo "ru_RU.UTF-8" ;; | ||
| se) echo "sv_SE.UTF-8" ;; | ||
| sg) echo "de_CH.UTF-8" ;; | ||
| si) echo "sl_SI.UTF-8" ;; | ||
| tr) echo "tr_TR.UTF-8" ;; | ||
| ua) echo "uk_UA.UTF-8" ;; | ||
| *) echo "$default_locale" ;; # Default fallback | ||
|
technicks89 marked this conversation as resolved.
Outdated
|
||
| esac | ||
| } | ||
|
|
||
| setLocale() { | ||
| if command_exists locale-gen; then | ||
|
|
||
| iso=$(curl -4fsSL --max-time 5 https://ifconfig.io/country_code 2>/dev/null | tr '[:upper:]' '[:lower:]') || iso="us" | ||
| suggested_locale=$(get_suggested_locale "${iso}") | ||
|
|
||
| while true; do | ||
| printf "Detected locale: '%s'. Press Enter to accept or type a new one (e.g. de_DE.UTF-8): " "$suggested_locale" | ||
| read -r input | ||
| LOCALE="${input:-$suggested_locale}" | ||
|
|
||
| case "$LOCALE" in | ||
| *_**) | ||
| # Check 2: Must end with .UTF-8 | ||
| if echo "$LOCALE" | grep -qE '\.UTF-8$'; then | ||
| # Found a likely valid locale format | ||
| break | ||
| fi | ||
| ;; | ||
| esac | ||
|
Comment on lines
+61
to
+64
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
For any syntactically plausible but unsupported input such as Useful? React with 👍 / 👎. |
||
|
|
||
| # If we reach here, the validation failed | ||
| echo "ERROR! Locale '$LOCALE' does not look valid. Please enter a locale like en_US.UTF-8." | ||
| done | ||
|
|
||
| if grep -q '^LC_ALL=' /etc/environment 2>/dev/null; then | ||
| "$ESCALATION_TOOL" sed -i "s/^LC_ALL=.*/LC_ALL=${LOCALE}/" /etc/environment | ||
|
technicks89 marked this conversation as resolved.
|
||
| else | ||
| printf 'LC_ALL=%s\n' "$LOCALE" | "$ESCALATION_TOOL" tee -a /etc/environment >/dev/null | ||
|
Comment on lines
+70
to
+73
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
For every successful run, writing Useful? React with 👍 / 👎. |
||
| fi | ||
| if ! grep -qxF "${LOCALE} UTF-8" /etc/locale.gen 2>/dev/null; then | ||
| printf '%s UTF-8\n' "$LOCALE" | "$ESCALATION_TOOL" tee -a /etc/locale.gen >/dev/null | ||
| fi | ||
| if grep -q '^LANG=' /etc/locale.conf 2>/dev/null; then | ||
| "$ESCALATION_TOOL" sed -i "s/^LANG=.*/LANG=${LOCALE}/" /etc/locale.conf | ||
| else | ||
| printf 'LANG=%s\n' "$LOCALE" | "$ESCALATION_TOOL" tee -a /etc/locale.conf >/dev/null | ||
| fi | ||
| "$ESCALATION_TOOL" locale-gen "${LOCALE}" | ||
| else | ||
| echo "ERROR! locale-gen not found; cannot generate locales on this system." | ||
| exit 1 | ||
| fi | ||
|
technicks89 marked this conversation as resolved.
|
||
| } | ||
|
|
||
| checkEnv | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
On an Arch system without AGENTS.md reference: AGENTS.md:L110-L115 Useful? React with 👍 / 👎. |
||
| setLocale | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -148,6 +148,12 @@ description = "This utility is designed to enable Num Lock at boot, rather than | |
| script = "numlock.sh" | ||
| task_list = "PFM SS" | ||
|
|
||
| [[data]] | ||
| name = "Locale Setup" | ||
|
Comment on lines
+151
to
+152
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The top-level utility entries are ordered alphabetically, but inserting AGENTS.md reference: AGENTS.md:L147-L148 Useful? React with 👍 / 👎. |
||
| description = "This allows the user to set their locale" | ||
| script = "locale-setup.sh" | ||
| task_list = "PFM" | ||
|
technicks89 marked this conversation as resolved.
Comment on lines
+154
to
+155
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Because AGENTS.md reference: AGENTS.md:L114-L115 Useful? React with 👍 / 👎. |
||
|
|
||
| [[data]] | ||
| name = "Ollama" | ||
| description = "This utility is designed to manage ollama in your system" | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On systems that provide
locale-genbut lacksystemctl,rc-service, andsv—such as minimal containers or chroots—sourcing this helper immediately callscheckInitManagerand exits before the locale prompt, even though this utility does not manage services. Source onlycommon-script.shhere so every environment admitted by the catalog precondition can run the utility.AGENTS.md reference: AGENTS.md:L87-L87
Useful? React with 👍 / 👎.