.dotfiles/.local/bin/edit

32 lines
537 B
Bash
Executable file

#!/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/"
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"