Compare commits
4 Commits
61051d7a3e
...
409b8e50f6
Author | SHA1 | Date | |
---|---|---|---|
![]() |
409b8e50f6
|
||
![]() |
9585df0209
|
||
![]() |
92cfaebb66
|
||
![]() |
fb906b659c
|
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
clear-apt-snaps () {
|
||||
zfs list -t snapshot | grep 'apt-' | sed 's| .*$||g' | head -n -5 | xargs -d '\n' -I {} sudo zfs destroy {}
|
||||
}
|
||||
REGEX='apt-'
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [ -z "$1" ] && [ "$1" == "upgrades" ]; then
|
||||
if [ -n "$1" ] && [ "$1" == "upgrades" ]; then
|
||||
shift
|
||||
|
||||
while getopts "r:" opt; do
|
||||
case "$opt" in
|
||||
r) REGEX=${OPTARG};;
|
||||
@@ -17,9 +17,5 @@ if ! [ -z "$1" ] && [ "$1" == "upgrades" ]; then
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$REGEX" ]; then
|
||||
clear-apt-snaps
|
||||
else
|
||||
zfs list -t snapshot | grep "${REGEX}" | sed 's| .*$||g' | head -n -5 | xargs -d '\n' -I {} sudo zfs destroy {}
|
||||
fi
|
||||
fi
|
9
zfs/zfs-media-drive.help
Normal file
9
zfs/zfs-media-drive.help
Normal file
@@ -0,0 +1,9 @@
|
||||
This script allows the creation of ZFS pool specifically for the purpose of media.
|
||||
This pool is divided into datasets that allow useful storage management of that media.
|
||||
|
||||
-k Option to provide a custom path to the key for the encrypted filesystem. Equivalent to 'keylocation' option in ZFS pool creation.
|
||||
-f Opton to provide a custom format for the aforementioned key. Equivalnt to 'keyformat' option in ZFS pool creation.
|
||||
-c Option to specify custom ZFS compression algorithm for ZFS pool. Equivalent to 'compression' option in ZFS pool creation.
|
||||
-v Option to specify custom ZFS version for compatibility purposes. Equivalent to 'compatibility' option in ZFS pool creation.
|
||||
-p Option to provide a custom name for the created ZFS pool.
|
||||
-d Specify the storage device, volume or partition to be given a pool.
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_ROOT=$(dirname "$0")
|
||||
# @TODO: Implement more soft-coding and interactivity to this script
|
||||
ZFS_POOL_NAME="media"
|
||||
ZFS_COMPAT="openzfs-2.1-linux"
|
||||
@@ -28,32 +29,31 @@ create_zpool () {
|
||||
/dev/disk/by-id/"${1}"
|
||||
}
|
||||
|
||||
mkdataset () {
|
||||
mkdir -p "$1"
|
||||
sudo zfs create -o mountpoint="$1" "$2"
|
||||
}
|
||||
|
||||
create_datasets () {
|
||||
DATASET=("${HOME}/Documents/.calibre" "${1}/LITERATURE")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
|
||||
DATASET=("${HOME}/Videos" "${1}/FILM")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
|
||||
DATASET=("${HOME}/.var/app/com.valvesoftware.Steam" "${1}/STEAMGAMES")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
|
||||
DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
|
||||
DATASET=("${HOME}/Games" "${1}/GAMES")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
ln -s "${HOME}/.var/app/com.valvesoftware.Steam" "${DATASET[0]}/Steam"
|
||||
ln -s "${HOME}/.var/app/org.libretro.RetroArch" "${DATASET[0]}/libRetro"
|
||||
|
||||
DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
|
||||
mkdataset "${DATASET[0]}" "${DATASET[1]}"
|
||||
|
||||
DATASET=("${HOME}/.XXX" "${1}/XXX")
|
||||
mkdir -p "${DATASET[0]}"
|
||||
@@ -61,14 +61,16 @@ create_datasets () {
|
||||
}
|
||||
|
||||
print_menu () {
|
||||
echo "Placeholder content"
|
||||
echo "$(<"${SCRIPT_ROOT}"/zfs-media-drive.help)"
|
||||
}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [ -z "$1" ] && [ "$1" == "init" ]; then
|
||||
if [ -n "$1" ] && [ "$1" == "init" ]; then
|
||||
shift
|
||||
|
||||
while getopts "d:p:k:f:c:v:" opt; do
|
||||
case $opt in
|
||||
k) ZFS_KEY_LOC="${OPTARG}";;
|
||||
@@ -82,7 +84,7 @@ if ! [ -z "$1" ] && [ "$1" == "init" ]; then
|
||||
done
|
||||
|
||||
if [ -z "$ZFS_TARGET_DRIVE" ]; then
|
||||
echo "It is necessary to argue a -d option."
|
||||
echo "Error: It is necessary to argue a -d option."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
Reference in New Issue
Block a user