.local/bin: Delete dataindex, encfsw.
There are superseded by ambrevar/storage and ambrevar/encfs.master
parent
6641bc3fd5
commit
58ef5126f8
|
@ -1,78 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
usage () {
|
|
||||||
cat <<EOF>&2
|
|
||||||
Usage: ${0##*/} [OPTIONS] FOLDERS
|
|
||||||
|
|
||||||
Output index of folder hierarchies to stdout. This is used as a small "backup"
|
|
||||||
purpose. In case of data loss, it is still possible to get the full file list
|
|
||||||
thanks to the indexes.
|
|
||||||
|
|
||||||
Version control and encfs-encrypted folders are skipped.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
|
|
||||||
-f: When outputting to a file, overwrite if it exists.
|
|
||||||
-w: Output each index to individual files in current folder. It uses the folder
|
|
||||||
name as basename.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
opt_noclobber=true
|
|
||||||
opt_file=false
|
|
||||||
while getopts ":fhw" opt; do
|
|
||||||
case $opt in
|
|
||||||
f)
|
|
||||||
opt_noclobber=false ;;
|
|
||||||
h)
|
|
||||||
usage
|
|
||||||
exit ;;
|
|
||||||
w)
|
|
||||||
opt_file=true ;;
|
|
||||||
\?)
|
|
||||||
usage
|
|
||||||
exit 1 ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
shift $((OPTIND - 1))
|
|
||||||
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
## 'realpath' is required in case argument is ending with '.' or '..'.
|
|
||||||
if ! command -v realpath >/dev/null 2>&1; then
|
|
||||||
echo >&2 "'realpath' not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i ; do
|
|
||||||
[ ! -d "$i" ] && continue
|
|
||||||
[ -e "$i"/.encfs*.xml ] && continue
|
|
||||||
|
|
||||||
## We strip "./" from find's listing since we don't need it. We could avoid
|
|
||||||
## printing it in the first place, but there are several shortcomings:
|
|
||||||
## - Find over '.*' and '*', is bad practice since if will fail on
|
|
||||||
## non-existing files or for files beginning with a dash.
|
|
||||||
## - The 'printf' command in find is for GNU find only.
|
|
||||||
|
|
||||||
## 'LC_ALL=C sort' is required to make sure to output is consistent across
|
|
||||||
## different systems.
|
|
||||||
|
|
||||||
echo >&2 "$i"
|
|
||||||
## The two following lines do the same for the same time cost. The former is shorter.
|
|
||||||
# find "$i" -type f | awk -v str="$i" '{l=length(str)+2; print substr($0, l)}' | LC_ALL=C sort > "$OUTPUT"
|
|
||||||
(cd -- "$i" && find . \( -path '*.git*' -o -path '*.svn*' -o -path '*.hg*' \) -prune -o -type f) | sed 's/^.\///' | LC_ALL=C sort | \
|
|
||||||
if $opt_file; then
|
|
||||||
i="$(realpath -- "$i")"
|
|
||||||
base="${i##*/}"
|
|
||||||
output="$base.index"
|
|
||||||
[ -e "$output" ] && $opt_noclobber && output="$base-$(date +%F-%T).index"
|
|
||||||
echo "$output"
|
|
||||||
cat > "$output"
|
|
||||||
else
|
|
||||||
cat
|
|
||||||
fi
|
|
||||||
done
|
|
|
@ -1,70 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ $# -ne 1 ] && [ $# -ne 2 ]; then
|
|
||||||
echo
|
|
||||||
cat<<EOF
|
|
||||||
Usage: $0 FOLDERS...
|
|
||||||
$0 -u
|
|
||||||
|
|
||||||
Mount encfs-encrypted FOLDERS.
|
|
||||||
With -u, unmount all encfs-mounted partitions.
|
|
||||||
EOF
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
check() {
|
|
||||||
for i ; do
|
|
||||||
if ! command -v $i >/dev/null 2>&1; then
|
|
||||||
echo "'$i' not found in PATH. Exiting." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
## REVIEW: Only set extpass if no PTY is connected?
|
|
||||||
if [ -z "$SUDO_ASKPASS" ] && command -v emacs-askpass >/dev/null 2>&1; then
|
|
||||||
SUDO_ASKPASS=emacs-askpass
|
|
||||||
fi
|
|
||||||
|
|
||||||
mount() {
|
|
||||||
check realpath encfs
|
|
||||||
SOURCE="$(realpath "$1")"
|
|
||||||
MOUNTPOINT="${SOURCE}_decrypted"
|
|
||||||
mkdir -p "$MOUNTPOINT"
|
|
||||||
if [ -z "$PASS" ]; then
|
|
||||||
encfs --extpass="$SUDO_ASKPASS" "$SOURCE" "$MOUNTPOINT" || rmdir "$MOUNTPOINT"
|
|
||||||
else
|
|
||||||
echo "$PASS" | encfs --stdinpass "$SOURCE" "$MOUNTPOINT" || rmdir "$MOUNTPOINT"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
unmount() {
|
|
||||||
check findmnt fusermount dataindex
|
|
||||||
|
|
||||||
while IFS= read -r i; do
|
|
||||||
## Generate index on exit.
|
|
||||||
folder=$(basename $(dirname "$i"))
|
|
||||||
mkdir -p "$PERSONAL"/index/"$folder"
|
|
||||||
dataindex "$i" | gpg --encrypt --recipient mail@ambrevar.xyz \
|
|
||||||
--output - > "$PERSONAL"/index/"$folder"/"$(basename "$i")".index.gpg
|
|
||||||
unset folder
|
|
||||||
fusermount -u "$i"
|
|
||||||
rmdir "$i"
|
|
||||||
done <<EOF
|
|
||||||
$(findmnt --noheadings --output=target encfs)
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$1" = "-u" ]; then
|
|
||||||
unmount
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -gt 1 ]; then
|
|
||||||
echo -n "EncFS Password: "
|
|
||||||
read PASS
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i; do
|
|
||||||
mount "$i"
|
|
||||||
done
|
|
Loading…
Reference in New Issue