Ubuntu Pastebin

Paste from cjwatson at Wed, 6 Jan 2016 16:21:32 +0000

Download as text
 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#! /bin/sh
set -e

usage () {
	cat <<EOF
Usage: $0 PATTERN CHANNEL YEAR [MONTH] [DAY]
EOF
}

eval set -- "$(getopt -o '' -l help -- "$@")" || { usage >&2; exit 2; }
while :; do
	case $1 in
		--help)
			usage
			exit 0
			;;
		--)	shift; break ;;
		*)	usage >&2; exit 2 ;;
	esac
done

if [ $# -lt 3 ]; then
	usage >&2
	exit 2
fi

PATTERN="$1"
CHANNEL="%23${2#\#}"
YEAR="$3"
MONTH="$4"
DAY="$5"

CURYEAR="$(date +%Y)"
CURMONTH="$(date +%m)"
CURDAY="$(date +%d)"

tmp="$(mktemp)"
cleanup () { rm -f "$tmp"; }
trap cleanup EXIT HUP INT QUIT TERM

if [ "$MONTH" ]; then
	months="$MONTH"
else
	months="$(seq -w 1 12)"
fi
for month in $months; do
	if [ "$DAY" ]; then
		days="$DAY"
	else
		lastday=31
		case $month in
			02)
				if [ "$(($YEAR % 400))" = 0 ]; then
					lastday=29
				elif [ "$(($YEAR % 100))" = 0 ]; then
					lastday=28
				elif [ "$(($YEAR % 4))" = 0 ]; then
					lastday=29
				else
					lastday=28
				fi
				;;
			04|06|09|11)
				lastday=30
				;;
		esac
		days="$(seq -w 1 "$lastday")"
	fi
	for day in $days; do
		url="http://irclogs.ubuntu.com/$YEAR/$month/$day/$CHANNEL.txt"
		wget -q -O- "$url" | egrep -i "$PATTERN" >"$tmp" || true
		if [ -s "$tmp" ]; then
			sed "s,^,$url:,g" "$tmp"
		fi
	done
done
Download as text