diff --git a/ci/release/template/scripts/lib.sh b/ci/release/template/scripts/lib.sh index d945da3f3..88e9c2972 100644 --- a/ci/release/template/scripts/lib.sh +++ b/ci/release/template/scripts/lib.sh @@ -18,25 +18,19 @@ if [ "${LIB_RAND-}" ]; then fi LIB_RAND=1 -rand() { - seed="$1" - range="$2" - - seed_file="$(mktemp)" - _echo "$seed" | md5sum > "$seed_file" - shuf -i "$range" -n 1 --random-source="$seed_file" -} - pick() { - if ! command -v shuf >/dev/null || ! command -v md5sum >/dev/null; then - eval "_echo \"\$3\"" - return - fi - seed="$1" shift - i="$(rand "$seed" "1-$#")" - eval "_echo \"\$$i\"" + + seed_file="$(mktemp)" + echo "$seed" > "$seed_file" + + while [ $# -gt 0 ]; do + echo "$1" + shift + done \ + | sort --sort=random --random-source="$seed_file" \ + | head -n1 } #!/bin/sh if [ "${LIB_LOG-}" ]; then diff --git a/install.sh b/install.sh index 616222862..ac96ca52e 100755 --- a/install.sh +++ b/install.sh @@ -23,25 +23,19 @@ if [ "${LIB_RAND-}" ]; then fi LIB_RAND=1 -rand() { - seed="$1" - range="$2" - - seed_file="$(mktemp)" - _echo "$seed" | md5sum > "$seed_file" - shuf -i "$range" -n 1 --random-source="$seed_file" -} - pick() { - if ! command -v shuf >/dev/null || ! command -v md5sum >/dev/null; then - eval "_echo \"\$3\"" - return - fi - seed="$1" shift - i="$(rand "$seed" "1-$#")" - eval "_echo \"\$$i\"" + + seed_file="$(mktemp)" + echo "$seed" > "$seed_file" + + while [ $# -gt 0 ]; do + echo "$1" + shift + done \ + | sort --sort=random --random-source="$seed_file" \ + | head -n1 } #!/bin/sh if [ "${LIB_LOG-}" ]; then