fix(common): стабильная генерация случайных строк при pipefail
This commit is contained in:
@@ -227,5 +227,14 @@ sanitize_name() {
|
|||||||
|
|
||||||
random_alnum() {
|
random_alnum() {
|
||||||
local len="${1:-20}"
|
local len="${1:-20}"
|
||||||
tr -dc 'A-Za-z0-9' </dev/urandom | head -c "$len"
|
local out=""
|
||||||
|
while ((${#out} < len)); do
|
||||||
|
# openssl выдает конечный блок данных, что безопасно для pipefail
|
||||||
|
# и не приводит к SIGPIPE как в схеме с head/tr от /dev/urandom.
|
||||||
|
out+="$(
|
||||||
|
openssl rand -base64 48 2>/dev/null \
|
||||||
|
| tr -dc 'A-Za-z0-9'
|
||||||
|
)"
|
||||||
|
done
|
||||||
|
printf '%s' "${out:0:len}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user