This commit is contained in:
Arthur Yunusov 2013-09-24 11:00:26 +06:00
commit a3c40a2382
4 changed files with 67 additions and 31 deletions

View File

@ -7,5 +7,6 @@
* расписание туров чемпионата;
* турнирная таблица;
* все партии, сыгранные в рамках чемпионата, в формате PGN.
* скрипт `schedule` для игроков, позволяет легко и быстро узнать расписание тура и имя очередного соперника. Подробности в файле `schedule.md`.
Структура репо интуитивно понятна и, надеюсь, не нуждается в объяснении.

46
schedule Executable file
View File

@ -0,0 +1,46 @@
#!/usr/bin/env bash
repo=fat0troll/lorchess
tournament=autumn2013
# Variables
score='\(0\|1\|0\.5\):\(0\|1\|0\.5\)'
# Colors
green='\\033[01;32m'
red='\\033[01;31m'
restore='\\033[00m'
# Note that we use `"$@"' to let each command-line parameter expand to a
# separate word. The quotes around `$@' are essential!
# We need ARGS as the `eval set --' would nuke the return value of getopt.
args=$(getopt --options p: --longoptions player: -- "$@")
# Note the quotes around `$ARGS': they are essential!
eval set -- "$args"
if [[ $1 == -p || $1 == --player ]];then
name=$2
shift 2
fi
shift
for tour in $@; do
# Change tour numbers: `1' -> `01', `2' -> `02', and so on
tour=0"$tour"
tour=${tour:(-2)}
url=https://raw.github.com/$repo/master/$tournament/tour_$tour/tour_info
echo ">>>"
curl -q --silent $url | while read line;do
if [[ -z $line ]];then
echo
elif [[ -z $name || `echo "$line" | egrep "Тур|=|Время|$name"` ]];then
# Colorize output
line=$(echo "$line" | sed "s/${score}/${green}\0${restore}/g")
[[ -n $name ]] && line=$(echo "$line" | sed "s/${name}/${red}\0${restore}/g")
echo -e $line
fi
done
done

20
schedule.md Normal file
View File

@ -0,0 +1,20 @@
Получение расписания туров
========
Скрипт `schedule` — это Ъ-bash скрипт для Ъ-линуксоидов, которые не ходят по ссылкам, а желают иметь лёгкий и быстрый доступ к расписанию турниров «LOR Chess» на [ЛОРе](http://www.linux.org.ru/). Работает на любом линуксе, достаточно поместить в директорию из `$PATH` (например, `/usr/local/bin/`) и разрешить права на исполнение.
Узнайте расписание тура под номером `N`
~~~sh
$ schedule N
~~~
или, указав свой лоровский псевдоним, имя соперника в туре
~~~sh
$ schedule --player VasyaPupkin N
~~~
У аргумента `--player` есть короткий аналог `-p`. Используйте перечисление туров через пробел для вывода информации по ним
~~~sh
$ schedule -p MashaPetrova 1 3
~~~
Вывод соответствует порядку перечисления туров.
Дополнительные возможности в процессе добавления. **Stay tuned!**

View File

@ -1,31 +0,0 @@
#!/usr/bin/env bash
mynick=iVS
repo=fat0troll/lorchess
tournament=autumn2013
# Note that we use `"$@"' to let each command-line parameter expand to a
# separate word. The quotes around `$@' are essential!
# We need ARGS as the `eval set --' would nuke the return value of getopt.
args=`getopt --options n: --longoptions nick: -- "$@"`
# Note the quotes around `$ARGS': they are essential!
eval set -- "$args"
if [[ $1 == -n ]] || [[ $1 == --nick ]]; then
name=$2
shift 3
else
name=$mynick
shift
fi
for tour in $@; do
# Change tour numbers: `1' -> `01', `2' -> `02', and so on
tour=0"$tour"
tour=${tour:(-2)}
url=https://raw.github.com/$repo/master/$tournament/tour_$tour/tour_info
curl -q --silent $url | egrep "Тур|Время|$name"
echo " ***"
done