From b62242eec1f8fb28845c45f19929231db40261fa Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Thu, 9 May 2024 14:30:17 -0300 Subject: src/statusconv: Add working utility --- src/statusconv | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 src/statusconv (limited to 'src/statusconv') diff --git a/src/statusconv b/src/statusconv new file mode 100755 index 0000000..9bc858b --- /dev/null +++ b/src/statusconv @@ -0,0 +1,50 @@ +#!/bin/sh +set -eu + + +FROM_N='' +TO_N='' +for flag in "$@"; do + case "$flag" in + *[0-9]:*[0-9]) + X="$(printf '%s' "$flag" | cut -d ':' -f1)" + Y="$(printf '%s' "$flag" | cut -d ':' -f2)" + FROM_N="$FROM_N $X" + TO_N="$TO_N $Y" + shift + ;; + *) + break + ;; + esac +done + + +if [ "$1" = '--' ]; then + shift +fi + +STATUS=0 +"$@" || STATUS=$? + +FOUND=false +I=-1 +for from in $FROM_N; do + I=$((I + 1)) + if [ "$from" = "$STATUS" ]; then + FOUND=true + break + fi +done + +if [ "$FOUND" = false ]; then + exit "$STATUS" +fi + +J=-1 +for to in $TO_N; do + J=$((J + 1)) + if [ "$J" = "$I" ]; then + exit "$to" + fi +done -- cgit v1.2.3