kind of more secureish vimcrypted
This commit is contained in:
@@ -7,12 +7,20 @@
|
||||
|
||||
function helpexit() {
|
||||
echo "Edit a GPG encrypted file with vim.
|
||||
Unsecure implementation, since the file is saved
|
||||
IN PLAIN TEXT when editing,
|
||||
this script only takes care of storing the file
|
||||
encrypted
|
||||
####################################################
|
||||
# UNSECURE IMPLEMENTATION, since the file is saved #
|
||||
# IN PLAIN TEXT when editing, #
|
||||
# this script only takes care of storing the file #
|
||||
# encrypted. #
|
||||
####################################################
|
||||
|
||||
Modified file is always backed up as .old
|
||||
|
||||
Usage: $( basename $0 ) textfile.gpg
|
||||
|
||||
Vim additions: H to unhide all lines
|
||||
h to hide lines except cursor
|
||||
|
||||
Changed file is always backed up as .old
|
||||
"
|
||||
exit
|
||||
}
|
||||
@@ -20,39 +28,38 @@ Changed file is always backed up as .old
|
||||
[[ "$1" = "-h" ]] && helpexit
|
||||
RM=rm
|
||||
which shred &> /dev/null && RM="shred -u"
|
||||
set -x
|
||||
if [[ ! "$1" == *\.gpg ]]
|
||||
then
|
||||
|
||||
if [[ ! "$1" == *\.gpg ]]; then
|
||||
echo "source is not .gpg"
|
||||
exit 1
|
||||
fi
|
||||
unc="${1%.gpg}"
|
||||
if [ -e "$unc" ]
|
||||
then echo "$unc already exists. exiting"
|
||||
if [ -e "$unc" ]; then
|
||||
echo "$unc already exists. exiting"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -e "$1" ]
|
||||
then echo "File $1 does not exist. Creating empty file"
|
||||
if [ ! -e "$1" ]; then
|
||||
echo "File $1 does not exist. Creating empty file"
|
||||
echo " " > "$unc"
|
||||
else
|
||||
gpg --decrypt "$1" > "$unc"
|
||||
fi
|
||||
LIB=$( dirname $( readlink -f $0 ) )/crypted.vim
|
||||
edit=`date +%s -r $unc`
|
||||
if [ -s "$unc" ]
|
||||
then vim -i NONE -S "$LIB" -n "$unc"
|
||||
else echo Error in decrypting
|
||||
if [ -s "$unc" ]; then
|
||||
vim -i NONE -S "$LIB" -n -c "call Hide()" "$unc"
|
||||
else
|
||||
echo Error in decrypting
|
||||
$RM "$unc"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
afteredit=`date +%s -r "$unc"`
|
||||
|
||||
if (( $edit != $afteredit ))
|
||||
then
|
||||
if (( $edit != $afteredit )); then
|
||||
cat "$unc" | gpg -ca > "$1".tmp
|
||||
if [ -s "$1".tmp ]
|
||||
then [[ -e "$1" ]] && mv -f "$1" "$1".old
|
||||
if [ -s "$1".tmp ]; then
|
||||
[[ -e "$1" ]] && mv -f "$1" "$1".old
|
||||
mv -f "$1".tmp "$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user