X-Git-Url: https://git.sommitrealweird.co.uk/advent-of-code-2020.git/blobdiff_plain/1ae258d79ba91cb6215a62a011fca7936c06d9df..0f422cf8b2cf81f77f11dfb69d386cc867e68ef5:/day4/count_valid_passports.sh diff --git a/day4/count_valid_passports.sh b/day4/count_valid_passports.sh index 17c7ffc..4a447ee 100644 --- a/day4/count_valid_passports.sh +++ b/day4/count_valid_passports.sh @@ -24,6 +24,18 @@ if [ "$cur_data" != "" ]; then data+=("$cur_data") fi +verify_data() { + local -n record=$1 + + for field in ${required_fields[@]}; do + if ! [ ${kvp[$field]+a} ]; then + exit 1 + fi + done + + exit 0 +} + for (( i=0; i<${#data[@]}; i++ )); do record="${data[$i]}" declare -A kvp @@ -32,12 +44,9 @@ for (( i=0; i<${#data[@]}; i++ )); do value=${field#*:} kvp[$key]=$value done - for field in ${required_fields[@]}; do - if ! [ ${kvp[$field]+a} ]; then - continue 2 - fi - done - valid_count=$((valid_count+1)) + if ( verify_data kvp ); then + valid_count=$((valid_count+1)) + fi unset kvp done