#!/usr/bin/sh

priv_cmd="sudo"

if [ -x "$(command -v doas)" ]
then
    priv_cmd="doas --"
fi

edit_directory="$HOME/.cache/edit/"

filehash=$(readlink -fn "$1" | md5sum | awk '{ print $1 }')
filedirectory="$edit_directory/$filehash/"
filedirectory=$(realpath -s "$filedirectory")

mkdir -p $filedirectory
filepath=$(realpath -s "$filedirectory/$(basename $1)")

user=$(id -un)
group=$(id -gn)

echo "Editing $1 in $filepath as $user:$group"

$priv_cmd cp "$1" "$filepath"
$priv_cmd chown $user:$group "$filepath"

$EDITOR "$filepath"

$priv_cmd cp "$filepath" "$1"

rm "$filepath"