summaryrefslogtreecommitdiff
path: root/src/lib/image.source.sh
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-13 10:15:20 +0300
committerPaul Buetow <paul@buetow.org>2026-06-13 10:15:20 +0300
commitd4971998edae804c39797486be7a342d43e61e5c (patch)
tree830c008847704b40b7f45d4c7c620beed03958d6 /src/lib/image.source.sh
parente9437367b8fc7a4cb0ffed6c0a8ba89356a3b9ad (diff)
Refactor helper modules for im0
Diffstat (limited to 'src/lib/image.source.sh')
-rw-r--r--src/lib/image.source.sh213
1 files changed, 0 insertions, 213 deletions
diff --git a/src/lib/image.source.sh b/src/lib/image.source.sh
index 568ab62..c190b87 100644
--- a/src/lib/image.source.sh
+++ b/src/lib/image.source.sh
@@ -80,144 +80,6 @@ scalephotos() {
fi
}
-wait_for_parallel_job_pid() {
- local -r pid="$1"; shift
- local -i status=0
-
- set +e
- wait "$pid"
- status=$?
- set -e
-
- return "$status"
-}
-
-parallel_job_pid_is_running() {
- local -r pid="$1"; shift
- local running_pid
-
- for running_pid in "$@"; do
- if [ "$running_pid" = "$pid" ]; then
- return 0
- fi
- done
-
- return 1
-}
-
-reap_finished_parallel_jobs() {
- local -r job_pids_name="$1"; shift
- # shellcheck disable=SC2178
- local -n job_pids_ref="$job_pids_name"
- local -n failed_ref="$1"; shift
- local -i reaped_status="$1"; shift
- local -i has_reaped_status=1
- local -i status=0
- local -a remaining_pids=()
- local -a running_pids=()
- local pid
-
- mapfile -t running_pids < <(jobs -rp)
-
- for pid in "${job_pids_ref[@]}"; do
- if parallel_job_pid_is_running "$pid" "${running_pids[@]}"; then
- remaining_pids+=("$pid")
- continue
- fi
-
- if wait_for_parallel_job_pid "$pid"; then
- status=0
- else
- status=$?
- fi
- if (( status == 127 && has_reaped_status != 0 )); then
- status=$reaped_status
- has_reaped_status=0
- fi
-
- if (( status != 0 )); then
- failed_ref=1
- fi
- done
-
- job_pids_ref=("${remaining_pids[@]}")
-}
-
-wait_for_next_parallel_job() {
- local -r job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
- # shellcheck disable=SC2178
- local -n job_pids_ref="$job_pids_name"
- local -i status=0
-
- set +e
- wait -n "${job_pids_ref[@]}"
- status=$?
- set -e
-
- reap_finished_parallel_jobs "$job_pids_name" "$failed_name" "$status"
-}
-
-wait_for_parallel_job_slot() {
- local -r job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
- local -r max_jobs="$1"; shift
- # shellcheck disable=SC2178
- local -n job_pids_ref="$job_pids_name"
-
- while (( ${#job_pids_ref[@]} >= max_jobs )); do
- wait_for_next_parallel_job "$job_pids_name" "$failed_name"
- done
-}
-
-wait_for_parallel_jobs() {
- # shellcheck disable=SC2178
- local -n job_pids_ref="$1"; shift
- local -n failed_ref="$1"; shift
-
- : "$failed_ref"
- while (( ${#job_pids_ref[@]} > 0 )); do
- if ! wait_for_parallel_job_pid "${job_pids_ref[0]}"; then
- failed_ref=1
- fi
- job_pids_ref=("${job_pids_ref[@]:1}")
- done
-}
-
-wait_for_image_job_slot() {
- local -r image_job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
-
- wait_for_parallel_job_slot \
- "$image_job_pids_name" \
- "$failed_name" \
- "$IMAGE_JOBS"
-}
-
-wait_for_image_jobs() {
- local -r image_job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
-
- wait_for_parallel_jobs "$image_job_pids_name" "$failed_name"
-}
-
-wait_for_template_render_job_slot() {
- local -r render_job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
-
- wait_for_parallel_job_slot \
- "$render_job_pids_name" \
- "$failed_name" \
- "$IMAGE_JOBS"
-}
-
-wait_for_template_render_jobs() {
- local -r render_job_pids_name="$1"; shift
- local -r failed_name="$1"; shift
-
- wait_for_parallel_jobs "$render_job_pids_name" "$failed_name"
-}
-
scale_photo() {
local -r photo="$1"; shift
local destphoto
@@ -248,78 +110,3 @@ scale_photo() {
"$destphoto"
fi
}
-
-random_seed_is_set() {
- [ -n "$RANDOM_SEED" ]
-}
-
-deterministic_index() {
- local -r namespace="$1"; shift
- local -r count="$1"; shift
- local checksum
-
- checksum=$(printf '%s' "${RANDOM_SEED}:$namespace" | cksum)
- checksum=${checksum%% *}
-
- printf '%s\n' $(( checksum % count ))
-}
-
-random_index() {
- local -r namespace="$1"; shift
- local -r count="$1"; shift
-
- if random_seed_is_set; then
- deterministic_index "$namespace" "$count"
- else
- printf '%s\n' $(( RANDOM % count ))
- fi
-}
-
-random_animation_css_class() {
- local -r speed="$1"; shift
- local -r context="${1:-$speed}"
- local -i index
- local -a classes=(
- "animate-opacity-$speed"
- "animate-top-$speed"
- "animate-left-$speed"
- "animate-right-$speed"
- "animate-bottom-$speed"
- "animate-zoom-$speed"
- "animate-snap-rotate-$speed"
- "animate-hard-zoom-$speed"
- "animate-slam-left-$speed"
- "animate-slam-right-$speed"
- "animate-flash-in-$speed"
- "animate-invert-pop-$speed"
- "animate-posterize-pop-$speed"
- "animate-skew-snap-$speed"
- "animate-glitch-step-$speed"
- )
-
- index=$(random_index "animation:$speed:$context" "${#classes[@]}")
- printf '%s\n' "${classes[index]}"
-}
-
-deterministic_shuffle() {
- local checksum
- local line
-
- while IFS= read -r line; do
- checksum=$(printf '%s' "${RANDOM_SEED}:shuffle:$line" | cksum)
- checksum=${checksum%% *}
- printf '%010u\t%s\n' "$checksum" "$line"
- done | sort -n -k1,1 -k2,2 | cut -f2-
-}
-
-maybe_shuffle() {
- if [ "$SHUFFLE" = yes ]; then
- if random_seed_is_set; then
- deterministic_shuffle
- else
- sort -R
- fi
- else
- sort
- fi
-}