46 lines
798 B
Bash
Executable File
46 lines
798 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Unsecure implementation of a simple encrypted file editor
|
|
# The file is saved IN PLAIN TEXT when editing,
|
|
# this script only takes care of storing the file
|
|
# encrypted
|
|
|
|
|
|
if [ ! -f "$1" ]
|
|
then
|
|
echo "Give me an encrypted text file"
|
|
exit 1
|
|
fi
|
|
unc=($(echo "$1" | sed 's/.gpg$//'))
|
|
if [ "$1" = "$unc" ]
|
|
then
|
|
echo "source is not .gpg"
|
|
exit 1
|
|
fi
|
|
if [ -e "$unc" ]
|
|
then echo "$unc already exists. exiting"
|
|
exit 1
|
|
fi
|
|
|
|
gpg --decrypt "$1" > "$unc"
|
|
|
|
edit=`date +%s -r $unc`
|
|
if [ -s "$unc" ]
|
|
then vim -i NONE -n "$unc"
|
|
else echo Error in decrypting
|
|
rm "$unc"
|
|
exit 1
|
|
fi
|
|
|
|
afteredit=`date +%s -r "$unc"`
|
|
|
|
if (( $edit != $afteredit ))
|
|
then
|
|
cat "$unc" | gpg -ca > "$1".tmp
|
|
if [ -s "$1".tmp ]
|
|
then mv "$1" "$1".old
|
|
mv "$1".tmp "$1"
|
|
fi
|
|
fi
|
|
rm "$unc"
|