diff options
Diffstat (limited to 'ar/.local')
| -rwxr-xr-x | ar/.local/bin/hugow | 66 | ||||
| -rwxr-xr-x | ar/.local/bin/ylog | 25 |
2 files changed, 91 insertions, 0 deletions
diff --git a/ar/.local/bin/hugow b/ar/.local/bin/hugow new file mode 100755 index 0000000..b96cc93 --- /dev/null +++ b/ar/.local/bin/hugow @@ -0,0 +1,66 @@ +#!/bin/sh +set -eu + +repodir="$HOME/Private/repos/THESIAH" +out="$repodir/public/recordings/index.html" +server="${THESIAH_SERVER:-root@thesiah.xyz}" +dest="/var/www/thesiah/recordings/" +defaults="sy after foramonth" +src="$repodir/public/recordings/" + +cd "$repodir" +hugo --cleanDestinationDir + +if [ ! -f "$out" ]; then + echo "error: not found: $out" >&2 + exit 1 +fi + +tmp="$(mktemp "$out.XXXXXXXX.tmp")" + +awk -v defaults="$defaults" ' +BEGIN { + n = split(defaults, a, /[[:space:]]+/) + insert = "" + for (i = 1; i <= n; i++) { + if (a[i] == "") continue + name = a[i] ".mp4" + insert = insert \ +" <li>\n" \ +" <a href=\"/recordings/" name "\" data-name=\"" name "\" class=\"vid\">" name "</a>\n" \ +" </li>\n" + } + injected = 0 +} +{ + print + if (!injected && $0 ~ /<ul[^>]*id=["'\''"]list["'\''"][^>]*>/) { + printf("%s", insert) + injected = 1 + } +} +END { if (!injected) exit 2 } +' "$out" >"$tmp" + +mv "$tmp" "$out" +echo "Injected defaults into: $out" + +ssh "$server" "mkdir -p '$dest'" + +if [ -n "${THESIAH_SSH_OPTS:-}" ]; then + rsync -azv --update --itemize-changes --stats \ + -e "ssh $THESIAH_SSH_OPTS" \ + "$src" "$server:$dest" +else + rsync -azv --update --itemize-changes --stats \ + "$src" "$server:$dest" +fi + +if [ -n "${1-}" ]; then + new="$repodir/content/recordings/$1" + [ -f "$new" ] && rsync -az --update "$new" "$server:$dest" +fi + +ssh "$THESIAH_SERVER" "chmod 644 $dest/index.html" + +cd - >/dev/null diff --git a/ar/.local/bin/ylog b/ar/.local/bin/ylog new file mode 100755 index 0000000..ff4083e --- /dev/null +++ b/ar/.local/bin/ylog @@ -0,0 +1,25 @@ +#!/bin/sh + +HOST="root@thesiah.xyz" +LOG_DIR="/var/log/nginx" +target="${1:-207.96.105.230}" + +esc_target=$(printf '%s' "$target" | sed -E 's/[][^$.*/+?(){}|\\]/\\&/g') + +ssh "$HOST" " + for f in $LOG_DIR/recordings* $LOG_DIR/access*; do + [ -e \"\$f\" ] || continue + case \"\$f\" in + *.gz) + zgrep -E \"${esc_target}[[:space:]]\" \"\$f\" \ + | grep -v '59.19.56.8' \ + | grep -vi 'firefox' + ;; + *) + grep -E \"${esc_target}[[:space:]]\" \"\$f\" \ + | grep -v '59.19.56.8' \ + | grep -vi 'firefox' + ;; + esac + done +" |
