#!/usr/bin/bash gcfmount () { if [ "$1" == "data" ]; then GOCRYPTFS_CONFIG_ARG=~/.keys/gocryptfs/data-cipher/gocryptfs.conf GOCRYPTFS_PASSFILE_ARG=~/.keys/gocryptfs/gocryptfs.key GOCRYPTFS_VAULT_ARG=~/.${1} fi if [ "$1" == "classified" ]; then GOCRYPTFS_CONFIG_ARG=~/.keys/gocryptfs/secret-cipher/gocryptfs.conf GOCRYPTFS_PASSFILE_ARG=~/.keys/gocryptfs/gocryptfs.key GOCRYPTFS_VAULT_ARG=~/Documents/.secret fi if [ "$1" == "works-in-progress" ]; then GOCRYPTFS_CONFIG_ARG=~/.keys/gocryptfs/wip-cipher/gocryptfs.conf GOCRYPTFS_PASSFILE_ARG=~/.keys/gocryptfs/gocryptfs-wip.key GOCRYPTFS_VAULT_ARG=~/Portfolio/.WIP fi if ! [ -f ~/.mnt/data ]; then mkdir -p ~/.mnt/data fi if ! [ -f ~/.mnt/works-in-progress ]; then mkdir -p ~/.mnt/works-in-progress fi if ! [ -f ~/.mnt/classified ]; then mkdir -p ~/.mnt/classified fi gocryptfs -config "$GOCRYPTFS_CONFIG_ARG" -passfile "$GOCRYPTFS_PASSFILE_ARG" "$GOCRYPTFS_VAULT_ARG" ~/.mnt/"${1}" } gcfunmount () { GOCRYPTFS_PLAIN_ARG=~/.mnt/${1} fusermount -u "$GOCRYPTFS_PLAIN_ARG" } gpgcrypt () { if [ -z "$2" ] || [ -z "$1" ]; then exit 1 fi if [ "$1" == "prof-yubi-meth" ]; then ENCRYPTION_SUBKEYS=("4B6331BEF3AC0BE7" "0224C38EB9F83CEC") elif [ "$1" == "prof-meth" ]; then ENCRYPTION_SUBKEYS=("52BF88A647736790" "310C56CDE883C607") elif [ "$1" == "pers-meth" ]; then ENCRYPTION_SUBKEYS=("3C75E89F4CF28B73" "C588608AC4ECA184") elif [ "$1" == "perv-meth" ]; then ENCRYPTION_SUBKEYS=("CA4E8224B296365A") elif [ "$1" == "perv-yubi-meth" ]; then ENCRYPTION_SUBKEYS=("8B0C4AEF8B316FC9") fi if [ -z "$3" ]; then SUBKEY_ARG_LEN="${#ENCRYPTION_SUBKEYS[@]}" if (( SUBKEY_ARG_LEN < 2 )); then gpg -a -r "${ENCRYPTION_SUBKEYS[0]}"! -e "$2" else gpg -a -r "${ENCRYPTION_SUBKEYS[0]}"! -r "${ENCRYPTION_SUBKEYS[1]}"! -e "$2" fi else if (( SUBKEY_ARG_LEN < 2 )); then gpg -a -r "${ENCRYPTION_SUBKEYS[0]}"! -o "$3" -e "$2" else gpg -a -r "${ENCRYPTION_SUBKEYS[0]}"! -r "${ENCRYPTION_SUBKEYS[1]}"! -o "$3" -e "$2" fi fi } znap () { DATE_OF_ZFS_SNAPSHOT=$(date '+%Y%m%d%H%M%S') if [ -z "$1" ]; then exit 1 elif [ "$1" == "essential" ]; then sudo zfs snapshot "zroot${HOME}@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot${HOME}/.config@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot${HOME}/.var/app@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot${HOME}/.local/share/flatpak@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/lib/nfs@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/lib/NetworkManager@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/keystore@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/srv@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/games@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/mail@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/www@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/usr/local@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot "zroot/var/lib/AccountsService@${DATE_OF_ZFS_SNAPSHOT}" sudo zfs snapshot -r "medialib@${DATE_OF_ZFS_SNAPSHOT}" zfs list -t snapshot # @NOTE: reccommended w option for zfs send else sudo zfs snapshot "${1}@${DATE_OF_ZFS_SNAPSHOT}" zfs list -t snapshot | grep "$1" fi } zeject () { if [ -z "$1" ]; then exit 1 fi sudo zpool export "$1" } ffcompress () { if [ -z "$2" ]; then CONVCODEC="libx265" else CONVCODEC=$2 fi ffmpeg -i "$1" -c:v "$CONVCODEC" -preset veryfast "new-${1}" rm "$1" mv "new-${1}" "$1" } z-apt-clean () { zfs list -t snapshot | grep 'apt-' | sed 's| .*$||g' | head -n -5 | xargs -d '\n' -I {} sudo zfs destroy {} }