gcfs.sh
· 2.2 KiB · Bash
Eredeti
#!/bin/bash
set -euo pipefail
source .env
GOCRYPTFS_PASSFILE=${GOCRYPTFS_ROOT_DIR:-~/.keys/gocrypts}/gocryptfs.key
GOCRYPTFS_OUTPUT_MOUNT=${GOCRYPTFS_MOUNT_ROOT:-~/.mnt}
overlay-mount () {
if [ "$1" == "data" ]; then
GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/data-cipher/gocryptfs.conf"
if [ -v "$2" ]; then
GOCRYPTFS_VAULT="${HOME}/.${2}"
if ! [ -f "${HOME}/.mnt/${2}" ]; then
mkdir -p "${HOME}/.mnt/${2}"
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
fi
else
GOCRYPTFS_VAULT=~/.data
if ! [ -f ~/.mnt/data ]; then
mkdir -p ~/.mnt/data
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/data"
fi
fi
fi
if [ "$1" == "classified" ]; then
GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/secret-cipher/gocryptfs.conf"
if [ -v "$2" ]; then
GOCRYPTFS_VAULT_ARG="${HOME}/Documents/.${2}"
if ! [ -f "${HOME}/.mnt/${2}" ]; then
mkdir -p "${HOME}/.mnt/${2}"
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
fi
else
GOCRYPTFS_VAULT_ARG=~/Documents/.secret
if ! [ -f ~/.mnt/classified ]; then
mkdir -p ~/.mnt/classified
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/classified"
fi
fi
fi
if [ "$1" == "works-in-progress" ]; then
GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/wip-cipher/gocryptfs.conf"
if [ -v "$2" ]; then
GOCRYPTFS_VAULT="${HOME}/Portfolio/.${2}"
if ! [ -f "${HOME}/.mnt/${2}" ]; then
mkdir -p "${HOME}/.mnt/${2}"
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
fi
else
GOCRYPTFS_VAULT=~/Portfolio/.wip
if ! [ -f ~/.mnt/works-in-progress ]; then
mkdir -p ~/.mnt/works-in-progress
GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/works-in-progress"
fi
fi
fi
gocryptfs -config "$GOCRYPTFS_CONFIG" -passfile "$GOCRYPTFS_PASSFILE" "$GOCRYPTFS_VAULT" "$GOCRYPTFS_VOLUME"
}
overlay-umount () {
if [ -v "$1" ]; then
GOCRYPTFS_PLAIN="${GOCRYPTFS_OUTPUT_MOUNT}/${1}"
else
exit 1
fi
fusermount -u "$GOCRYPTFS_PLAIN"
}
| 1 | #!/bin/bash |
| 2 | set -euo pipefail |
| 3 | |
| 4 | source .env |
| 5 | GOCRYPTFS_PASSFILE=${GOCRYPTFS_ROOT_DIR:-~/.keys/gocrypts}/gocryptfs.key |
| 6 | GOCRYPTFS_OUTPUT_MOUNT=${GOCRYPTFS_MOUNT_ROOT:-~/.mnt} |
| 7 | |
| 8 | overlay-mount () { |
| 9 | if [ "$1" == "data" ]; then |
| 10 | GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/data-cipher/gocryptfs.conf" |
| 11 | |
| 12 | if [ -v "$2" ]; then |
| 13 | GOCRYPTFS_VAULT="${HOME}/.${2}" |
| 14 | |
| 15 | |
| 16 | if ! [ -f "${HOME}/.mnt/${2}" ]; then |
| 17 | mkdir -p "${HOME}/.mnt/${2}" |
| 18 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}" |
| 19 | fi |
| 20 | else |
| 21 | GOCRYPTFS_VAULT=~/.data |
| 22 | |
| 23 | if ! [ -f ~/.mnt/data ]; then |
| 24 | mkdir -p ~/.mnt/data |
| 25 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/data" |
| 26 | fi |
| 27 | fi |
| 28 | fi |
| 29 | |
| 30 | if [ "$1" == "classified" ]; then |
| 31 | GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/secret-cipher/gocryptfs.conf" |
| 32 | |
| 33 | if [ -v "$2" ]; then |
| 34 | GOCRYPTFS_VAULT_ARG="${HOME}/Documents/.${2}" |
| 35 | |
| 36 | if ! [ -f "${HOME}/.mnt/${2}" ]; then |
| 37 | mkdir -p "${HOME}/.mnt/${2}" |
| 38 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}" |
| 39 | fi |
| 40 | else |
| 41 | GOCRYPTFS_VAULT_ARG=~/Documents/.secret |
| 42 | |
| 43 | if ! [ -f ~/.mnt/classified ]; then |
| 44 | mkdir -p ~/.mnt/classified |
| 45 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/classified" |
| 46 | fi |
| 47 | fi |
| 48 | fi |
| 49 | |
| 50 | if [ "$1" == "works-in-progress" ]; then |
| 51 | GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/wip-cipher/gocryptfs.conf" |
| 52 | |
| 53 | if [ -v "$2" ]; then |
| 54 | GOCRYPTFS_VAULT="${HOME}/Portfolio/.${2}" |
| 55 | |
| 56 | if ! [ -f "${HOME}/.mnt/${2}" ]; then |
| 57 | mkdir -p "${HOME}/.mnt/${2}" |
| 58 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}" |
| 59 | fi |
| 60 | else |
| 61 | GOCRYPTFS_VAULT=~/Portfolio/.wip |
| 62 | |
| 63 | if ! [ -f ~/.mnt/works-in-progress ]; then |
| 64 | mkdir -p ~/.mnt/works-in-progress |
| 65 | GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/works-in-progress" |
| 66 | fi |
| 67 | fi |
| 68 | fi |
| 69 | |
| 70 | gocryptfs -config "$GOCRYPTFS_CONFIG" -passfile "$GOCRYPTFS_PASSFILE" "$GOCRYPTFS_VAULT" "$GOCRYPTFS_VOLUME" |
| 71 | } |
| 72 | |
| 73 | overlay-umount () { |
| 74 | if [ -v "$1" ]; then |
| 75 | GOCRYPTFS_PLAIN="${GOCRYPTFS_OUTPUT_MOUNT}/${1}" |
| 76 | else |
| 77 | exit 1 |
| 78 | fi |
| 79 | |
| 80 | fusermount -u "$GOCRYPTFS_PLAIN" |
| 81 | } |