Files
kern-scripts/bash/functions.sh
2025-09-07 10:22:04 -04:00

126 lines
4.0 KiB
Bash

#!/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 {}
}