summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xshow-irc-log43
1 files changed, 29 insertions, 14 deletions
diff --git a/show-irc-log b/show-irc-log
index 8ba667c..0986b21 100755
--- a/show-irc-log
+++ b/show-irc-log
@@ -9,20 +9,35 @@ curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/' \
t
d
' \
-| sort \
-| tail -n4 \
-| while read -r s; do
- curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/'"${s}"'.html' \
- | sed -n '
- s|^.* <span class="person" style="[^"]\+">&lt;\([^&]\+\)&gt;</span>|\1 \||
- t ok
- s|^.* <span class="person" style="[^"]\+">\* \(\S\+\) \(.*\)</span>.*$|\1 : \2|
- t ok
- T
- :ok
- p
- '
- done \
+| sort -r \
+| {
+ lines_count=0
+ while read -r s; do
+ lines=$(
+ curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/'"${s}"'.html' \
+ | sed -n '
+ s|^.* <span class="person" style="[^"]\+">&lt;\([^&]\+\)&gt;</span>|\1 \||
+ t ok
+ s|^.* <span class="person" style="[^"]\+">\* \(\S\+\) \(.*\)</span>.*$|\1 : \2|
+ t ok
+ T
+ :ok
+ p
+ ' \
+ | tac
+ )
+ if [ -z "${lines}" ]; then
+ continue;
+ fi
+ lines_count=$((lines_count + $(printf '%s\n' "${lines}" | wc -l)))
+ printf '%s\n' "${lines}"
+ if [ "${lines_count}" -ge 30 ]; then
+ cat >/dev/null
+ break
+ fi
+ done
+} \
+| tac \
| tail -n30 \
> "${tmp_dir}/input"