mkpk

Систем за управљање пакетима који користи mk из система Plan9
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување d8169da60106224edf51e4cfe627debe1fb40fad
родитељ 0f16fb13458e34433bbd5042f62543000d180d28
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Sat, 20 Aug 2022 22:17:43 +0200

recent: Fix version parsing

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mrecent | 48++++++++++++++++++++++++++++++++++++------------
измењених датотека: 1, додавања: 36(+), брисања: 12(-)

diff --git a/recent b/recent @@ -5,10 +5,18 @@ output_recent() local ver1=$1 ver2=$2 major1 major2 minor1 minor2 patch1 patch2 local rest1 rest2 recent - major1=$(echo "${ver1}" | sed 's/\([0-9]\+\)\..*/\1/') - major2=$(echo "${ver2}" | sed 's/\([0-9]\+\)\..*/\1/') - rest1=$(echo "${ver1}" | sed 's/[0-9]\+\.\(.*\)/\1/') - rest2=$(echo "${ver2}" | sed 's/[0-9]\+\.\(.*\)/\1/') + case "${ver1}" in + *.*) major1=$(echo "${ver1}" | cut -s -d. -f1) + rest1=$(echo "${ver1}" | sed 's/^'$major1'\.//');; + *) major1="${ver1}" + rest1=$(echo "${ver1}" | sed 's/^'$major1'//');; + esac + case "${ver2}" in + *.*) major2=$(echo "${ver2}" | cut -s -d. -f1) + rest2=$(echo "${ver2}" | sed 's/^'$major2'\.//');; + *) major2="${ver2}" + rest2=$(echo "${ver2}" | sed 's/^'$major2'//');; + esac if [ "${major1}" -gt "${major2}" ]; then echo "${ver1}" @@ -18,10 +26,18 @@ output_recent() return fi - minor1=$(echo "${rest1}" | sed 's/\([0-9]\+\)\..*/\1/') - minor2=$(echo "${rest2}" | sed 's/\([0-9]\+\)\..*/\1/') - rest1=$(echo "${rest1}" | sed 's/[0-9]\+\.\(.*\)/\1/') - rest2=$(echo "${rest2}" | sed 's/[0-9]\+\.\(.*\)/\1/') + case "${rest1}" in + *.*) minor1=$(echo "${rest1}" | cut -s -d. -f1) + rest1=$(echo "${rest1}" | sed 's/^'$minor1'\.//');; + *) minor1="${rest1}" + rest1=$(echo "${rest1}" | sed 's/^'$minor1'//');; + esac + case "${rest2}" in + *.*) minor2=$(echo "${rest2}" | cut -s -d. -f1) + rest2=$(echo "${rest2}" | sed 's/^'$minor2'\.//');; + *) minor2="${rest2}" + rest2=$(echo "${rest2}" | sed 's/^'$minor2'//');; + esac if [ "${minor1}" -gt "${minor2}" ]; then echo "${ver1}" @@ -31,10 +47,18 @@ output_recent() return fi - patch1=$(echo "${rest1}" | sed 's/\([0-9]\+\)\(-.*\)*/\1/') - patch2=$(echo "${rest2}" | sed 's/\([0-9]\+\)\(-.*\)*/\1/') - rest1=$(echo "${rest1}" | sed 's/[0-9]\+\(-\(.*\)\)*/\2/') - rest2=$(echo "${rest2}" | sed 's/[0-9]\+\(-\(.*\)\)*/\2/') + case "${rest1}" in + *-*) patch1=$(echo "${rest1}" | cut -s -d- -f1) + rest1=$(echo "${rest1}" | sed 's/^'$patch1'-//');; + *) patch1="${rest1}" + rest1=$(echo "${rest1}" | sed 's/^'$patch1'//');; + esac + case "${rest2}" in + *-*) patch2=$(echo "${rest2}" | cut -s -d- -f1) + rest2=$(echo "${rest2}" | sed 's/^'$patch2'-//');; + *) patch2="${rest2}" + rest2=$(echo "${rest2}" | sed 's/^'$patch2'//');; + esac if [ "${patch1}" -gt "${patch2}" ]; then echo "${ver1}"