31 lines
		
	
	
	
		
			582 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			582 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/"
 | |
| 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"
 |