@@ -20,16 +20,34 @@ list_files() {
2020 curl -Lfs " $url " | sed -n ' s/^<a href="\([^/"]*\)\/">\1\/<\/a>.*$/\1/p'
2121}
2222
23+ get_latest_releases () {
24+
25+ local year=$( list_files " $server_https " | tail -n1 )
26+ [[ " $year " =~ ^[0-9]{4}$ ]] || error " Unexpected directory: $year "
27+ (( $year >= 2019 )) || error " Unexpected year: $year "
28+
29+ exec 11< <( list_files " $server_https /$(( $year - 1 )) " )
30+ exec 10< <( list_files " $server_https /$(( $year - 0 )) " )
31+ local ym1=$( cat < & 11 )
32+ local ym0=$( cat < & 10 )
33+
34+ for y in " $ym1 " " $ym0 " ; do
35+ [[ " $y " != " " ]] || error " Unable to list latest releases"
36+ cat <<< " $y"
37+ done
38+
39+ }
40+
2341echo
24- echo " Getting latest DD-WRT release info ..."
42+ echo " Getting info of latest DD-WRT releases ..."
2543
26- year =$( list_files " $server_https " | tail -n1 )
27- [[ " $year " =~ ^[0-9]{4}$ ]] || error " Unexpected directory: $year "
28- (( $year >= 2019 )) || error " Unexpected year: $ year"
44+ latest_releases =$( get_latest_releases )
45+ release_tag= $( { echo ; echo " $latest_releases " ; } | tail -n $(( $prior_to_latest + 1 )) | head -n1 )
46+ [[ " $release_tag " != " " ]] || error " Chosen prior-to-latest release cannot be from before last year"
2947
30- release_tag=$( list_files " $server_https /$year " | tail -n1 )
31- [[ " $release_tag " =~ ^(( 0 [1 - 9 ]| 1 [0 - 2 ])[- ](0 [1 - 9 ]| [1 - 2 ][0 - 9 ]| 3 [0 - 1 ])[- ]($year )) [-]r([0-9]+)$ ]] || error " Unexpected directory: $year /$release_tag "
48+ [[ " $release_tag " =~ ^(( 0 [1 - 9 ]| 1 [0 - 2 ])[- ](0 [1 - 9 ]| [1 - 2 ][0 - 9 ]| 3 [0 - 1 ])[- ](2 [0 - 9 ][0 - 9 ][0 - 9 ])) [-]r([0-9]+)$ ]] || error " Unexpected release tag: $release_tag "
3249
50+ year=" ${BASH_REMATCH[4]} "
3351month=" ${BASH_REMATCH[2]} "
3452day=" ${BASH_REMATCH[3]} "
3553
@@ -41,7 +59,7 @@ release_num="${BASH_REMATCH[5]}"
4159
4260tag=" r$release_num -$date_num "
4361
44- echo " Latest release is : r$release_num ($date_int )"
62+ echo " Chosen release ( $prior_to_latest prior to latest) : r$release_num ($date_int )"
4563echo
4664
4765set_firmware_files
0 commit comments