| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | #!/usr/bin/env bash | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-05 01:50:47 +02:00
										 |  |  | YEAR=2014 | 
					
						
							|  |  |  | TOURNAMENT=1-tabiyas | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  | SCRIPT_PATH=`dirname $0` | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Regexps to parse the result of game | 
					
						
							|  |  |  | date='([0-9]{2}\.[0-9]{2}\.[0-9]{4})' | 
					
						
							|  |  |  | white='(.+)' | 
					
						
							|  |  |  | black='(.+)' | 
					
						
							|  |  |  | result='((1|0|0\.5):(1|0|0\.5))' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Directories to search `tour_info' in | 
					
						
							|  |  |  | if [[ $# != 0 ]]; then | 
					
						
							|  |  |  |     tour_dirs=() | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  |     for number in "$@"; do | 
					
						
							|  |  |  |         # Change tour numbers: '1' -> '01', '2' -> '02', and so on | 
					
						
							|  |  |  |         number=$(printf "%02g" "$number") | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  |         tour_dirs+=("$SCRIPT_PATH"/"$YEAR"/"$TOURNAMENT"/tours/"$number") | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  |     done | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  |     tour_dirs=("$SCRIPT_PATH"/"$YEAR"/"$TOURNAMENT"/tours/*) | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for dir in "${tour_dirs[@]}"; do | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  |     number=$(printf "%01g" ${dir:(-2)}) # remove the leading `0' if any | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     echo "- number: ${number}" | 
					
						
							|  |  |  |     echo "  games:" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Add a newline at the end of `tour_info' to parse the last line | 
					
						
							| 
									
										
										
										
											2013-11-21 19:32:47 +02:00
										 |  |  |     tour_info=$(cat "$dir/tour_info" && echo) | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     while read line; do | 
					
						
							|  |  |  |         # Parsed data of game: date a[1], white player a[2], black | 
					
						
							|  |  |  |         # player a[6], and the result a[3] | 
					
						
							| 
									
										
										
										
											2013-10-01 18:30:29 +03:00
										 |  |  |         data=( $(echo "$line" | gawk --re-interval \ | 
					
						
							| 
									
										
										
										
											2013-11-08 10:06:41 +02:00
										 |  |  |             'match($0, /'${date}' [-—] '${white}' '${result}' '${black}'/, a) \ | 
					
						
							| 
									
										
										
										
											2013-10-01 18:30:29 +03:00
										 |  |  |             { print a[1], a[2], a[6], a[3] }') ) | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if [[ ${#data[@]} != 0 ]]; then | 
					
						
							|  |  |  |             echo "  - date:   ${data[0]}" | 
					
						
							|  |  |  |             echo "    white:  ${data[1]}" | 
					
						
							|  |  |  |             echo "    black:  ${data[2]}" | 
					
						
							| 
									
										
										
										
											2013-10-01 18:30:29 +03:00
										 |  |  |             echo "    result: '${data[3]}'" | 
					
						
							| 
									
										
										
										
											2013-10-01 09:28:23 +03:00
										 |  |  |             echo | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |     done <<< "$tour_info" | 
					
						
							|  |  |  | done |