host info updates
[distro-setup] / fsfsys-recent
1 #!/bin/bash
2 # I, Ian Kelling, follow the GNU license recommendations at
3 # https://www.gnu.org/licenses/license-recommendations.en.html. They
4 # recommend that small programs, < 300 lines, be licensed under the
5 # Apache License 2.0. This file contains or is part of one or more small
6 # programs. If a small program grows beyond 300 lines, I plan to switch
7 # its license to GPL.
8
9 # Copyright 2024 Ian Kelling
10
11 # Licensed under the Apache License, Version 2.0 (the "License");
12 # you may not use this file except in compliance with the License.
13 # You may obtain a copy of the License at
14
15 # http://www.apache.org/licenses/LICENSE-2.0
16
17 # Unless required by applicable law or agreed to in writing, software
18 # distributed under the License is distributed on an "AS IS" BASIS,
19 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 # See the License for the specific language governing permissions and
21 # limitations under the License.
22
23
24 if [[ -e /tmp/fsfsys-recent ]]; then
25 tmp=$(mktemp)
26 touch --date="1 minutes ago" "$tmp"
27 cooldown=false
28 if [[ /tmp/fsfsys-recent -nt "$tmp" ]]; then
29 cooldown=true
30 fi
31 rm -f "$tmp"
32 if $cooldown; then
33 echo "error: wait 1 minute between requests"
34 exit 0
35 fi
36
37 tmp2=$(mktemp)
38 touch --date="5 minute ago" "$tmp2"
39 cache=false
40 if [[ /tmp/fsfsys-recent -nt "$tmp2" ]]; then
41 cache=true
42 fi
43 rm -f "$tmp2"
44 if $cache; then
45 cat /tmp/fsfsys-recent
46 exit 0
47 fi
48 fi
49
50 d='/var/lib/znc/moddata/log/iank/libera/#fsfsys'
51 date0=$(date +%Y-%m-%d)
52 date1=$(date +%Y-%m-%d -d yesterday)
53 f0="$d/$date0.log"
54 f1="$d/$date1.log"
55 url=$( { sed "s/^/$date1 /" $f1; sed "s/^/$date0 /" $f0; } | /a/opt/fpaste/fpaste -x 60 |& grep -i '^http' | sed -r 's,/view/,/view/raw/,' )
56 notice='This url is not public and this message does not not imply permission to share it publicly. It expires in 60 minutes. Related: the "Public logging" section at https://libera.chat/policies/.'
57 printf "%s %s\n" "$url" "$notice" | tee /tmp/fsfsys-recent