#!/usr/bin/haserl --shell=/bin/bash <% VERSION=0.4 path=$(/opt/bin/pdecode <<<"${PATH_INFO#/}") error() { echo -e "Content-Type: text/plain; charset=utf-8\n" echo "$1" exit 1 } irc() { echo >/dev/null #/opt/bin/birk -c radionova "$1" } byline() { echo "skrevet av $(ls -ld $1 | awk '{print $3}')" } info() { stat -c '%n: %U %G %A %Y' $1 } link() { local raw=${REQUEST_URI%\?*} local clean="/${raw%/}" local rawt="$BASE/$2" local cleant="/${rawt%/}" local target="" [ -n "$3" ] && target=" target='$3'" [ $cleant = $clean ] && echo "$1" || echo "$1" } qlink() { text="$1" && url="$BASE/$2" && shift 2 local IFS=\& && echo -ne "$text\n" } redirect() { echo -ne "Location: $SCHEME$HOST$1\r\n" echo -ne "Status: 302\r\n" echo -ne "Content-Type: text/html; charset=utf-8\r\n\r\n" echo "٩(͡๏̯͡๏)۶>" exit } stikkordsøk() { [ "$action" = index.html -o "$action" = ditt -o "$action" = gruppe ] || return echo "
" } kalender() { [ "$action" = index.html -o "$action" = ditt -o "$action" = gruppe ] || return echo "for mye? reis i tid…"
IFS=- read y m d <<<"$GET_dato"
n=0
[ -n "$GET_stikkord" ] && n=1
if [ -z "$y" ]; then
for directory in $(cut -d / -f $((n + 2)) | sort | uniq); do
year=$(basename $directory)
qlink "$year" "$action/$args" "dato=$year" "stikkord=$GET_stikkord"
done
elif [ -z "$m" ]; then
echo ""
qlink "$y" "$action/$args" "stikkord=$GET_stikkord"
echo "
"
for directory in $(cut -d / -f $((n + 3)) | sort | uniq); do
month=$(basename $directory)
qlink "$month" "$action/$args" "dato=$y-$month" "stikkord=$GET_stikkord"
done
elif [ -z "$d" ]; then
echo ""
qlink "$y" "$action/$args" "stikkord=$GET_stikkord"
echo "/"
qlink "$m" "$action/$args" "dato=$y" "stikkord=$GET_stikkord"
echo "
"
for directory in $(cut -d / -f $((n + 4)) | sort | uniq); do
day=$(basename $directory)
qlink "$day" "$action/$args" "dato=$y-$m-$day" "stikkord=$GET_stikkord"
done
else
echo ""
qlink "$y" "$action/$args" "stikkord=$GET_stikkord"
echo "/"
qlink "$m" "$action/$args" "dato=$y" "stikkord=$GET_stikkord"
echo "/"
qlink "$d" "$action/$args" "dato=$y-$m" "stikkord=$GET_stikkord"
echo "
"
fi
}
meny() {
echo -e "Content-Type: text/html; charset=utf-8\n"
echo ""
echo "
$(figlet -f threepoint tears)" "" echo "
hei, $(whoami) ♥
"
link 'skriv en artikkel' 'skriv'
echo "
du har tilgang til…
"
link 'dine artikler' 'ditt' && echo "
"
for group in $available; do
link "$group" "gruppe/$group"
done
kalender
stikkordsøk
echo "
kos deg! ٩(͡๏̯͡๏)۶" echo "
Ingen artikler" else echo "
" qlink "eldre artikler…" "$action/$args" "dato=$GET_dato" "n=$n" fi } stikkord() { find -L stikkord -samefile "$1" | while read file; do local imp=${file#stikkord/} local ord=${imp%%/*} [ -z "$first" ] || echo -n " " echo -n "$ord" first=1 done } stikk() { find -L stikkord -samefile "$1" -delete for ord in $2; do local path="stikkord/$ord/${1#artikler/}" umask 000 mkdir -p -m 777 "$(dirname $path)" ln -s "../../../../../$1" "$path" done } skjema() { [ ! -f "$1" ] && echo "
finner ikke $1:
$(xxd <<<$1)" && exit [ ! -w "$1" ] && echo "
du har ikke skrivetilgang" && exit echo "
" #echo "$(info $1)" } vis() { [ ! -f "$1" ] && echo "
finner ikke $1:
$(xxd <<<$1)" && exit [ ! -r "$1" ] && echo "
du har ikke lesetilgang" && exit
echo "
$(byline $1), $y/$m/$d" [ -r "$1" ] && echo "·" && link "vis" $(/opt/bin/pencode / <<<"vis/$1") [ -w "$1" ] && echo "·" && link "rediger" $(/opt/bin/pencode / <<<"rediger/$1") lupin -s $1 } velkommen() { echo "
" } forbered() { echo "I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be lost in time, like tears in rain.
Time to die.
";;
spökvåningen) echo "
";; todo) echo "
$(cat TODO)";; esac %>