summary refs log tree commit diff homepage
path: root/2020/day04-2.sh
blob: 5b3c2d3192292e8dbed60022fd865fd5362be47c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/sh
valid=0
check() {
	[ \
		"${#byr}" -eq 4 -a "${byr}" -ge 1920 -a "${byr}" -le 2002 -a \
		"${#iyr}" -eq 4 -a "${iyr}" -ge 2010 -a "${iyr}" -le 2020 -a \
		"${#eyr}" -eq 4 -a "${eyr}" -ge 2020 -a "${eyr}" -le 2030 \
	] || return 0
	case "${hgt}" in
		(*cm) [ "${hgt%cm}" -ge 150 -a "${hgt%cm}" -le 193 ] || return 0 ;;
		(*in) [ "${hgt%in}" -ge 59 -a "${hgt%in}" -le 76 ] || return 0 ;;
		(*) return 0 ;;
	esac
	echo "${hcl}" | egrep -q '^#[0-9a-f]{6}$' || return 0
	case "${ecl}" in
		(amb|blu|brn|gry|grn|hzl|oth) ;;
		(*) return 0 ;;
	esac
	[ "${#pid}" -eq 9 ] || return 0
	return 1
}
validate() {
	check
	valid=$((valid + $?))
	unset byr iyr eyr hgt hcl ecl pid cid
}
while :; do
	read -r line
	last=$?
	if [ -n "${line}" ]; then
		for pair in $line; do
			var=${pair%:*}
			val=${pair#*:}
			eval "${var}=${val}"
		done
	else
		validate
	fi
	[ $last -ne 0 ] && break
done
validate
echo $valid
Lars Hjemli 2009-07-25cgit.h: keep config flags sortedLars Hjemli 2009-07-25cgitrc.5.txt: document 'embedded' and 'noheader'Lars Hjemli 2009-07-25Add support for 'noheader' optionLars Hjemli 2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli 2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli 2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon 2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro 2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro 2009-06-07Return http statuscode 404 on unknown branchLars Hjemli 2009-06-07Add head-include configuration option.Mark Lodato 2009-03-15CGIT 0.8.2.1Lars Hjemli 2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli 2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli 2009-03-15fix segfault when displaying empty blobsEric Wong 2009-02-19Add support for HEAD requestsLars Hjemli 2009-02-19Add support for ETag in 'plain' viewLars Hjemli 2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli 2009-02-12Makefile: add doc-related targetsLars Hjemli