Compare commits
	
		
			4 Commits
		
	
	
		
			61051d7a3e
			...
			409b8e50f6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					
						
						
							
						
						409b8e50f6
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						9585df0209
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						92cfaebb66
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						fb906b659c
	
				 | 
					
					
						
@@ -1,15 +1,15 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
set -euo pipefail
 | 
					set -euo pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clear-apt-snaps () {
 | 
					REGEX='apt-'
 | 
				
			||||||
    zfs list -t snapshot | grep 'apt-' | sed 's| .*$||g' | head -n -5 | xargs -d '\n' -I {} sudo zfs destroy {}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -z "$1" ]; then
 | 
					if [ -z "$1" ]; then
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
if ! [ -z "$1" ] && [ "$1" == "upgrades" ]; then
 | 
					if [ -n "$1" ] && [ "$1" == "upgrades" ]; then
 | 
				
			||||||
 | 
					    shift
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    while getopts "r:" opt; do
 | 
					    while getopts "r:" opt; do
 | 
				
			||||||
        case "$opt" in
 | 
					        case "$opt" in
 | 
				
			||||||
            r) REGEX=${OPTARG};;
 | 
					            r) REGEX=${OPTARG};;
 | 
				
			||||||
@@ -17,9 +17,5 @@ if ! [ -z "$1" ] && [ "$1" == "upgrades" ]; then
 | 
				
			|||||||
        esac
 | 
					        esac
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -z "$REGEX" ]; then
 | 
					    zfs list -t snapshot | grep "${REGEX}" | sed 's| .*$||g' | head -n -5 | xargs -d '\n' -I {} sudo zfs destroy {}
 | 
				
			||||||
        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
 | 
					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
 | 
					#!/bin/bash
 | 
				
			||||||
set -euo pipefail
 | 
					set -euo pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SCRIPT_ROOT=$(dirname "$0")
 | 
				
			||||||
# @TODO: Implement more soft-coding and interactivity to this script
 | 
					# @TODO: Implement more soft-coding and interactivity to this script
 | 
				
			||||||
ZFS_POOL_NAME="media"
 | 
					ZFS_POOL_NAME="media"
 | 
				
			||||||
ZFS_COMPAT="openzfs-2.1-linux"
 | 
					ZFS_COMPAT="openzfs-2.1-linux"
 | 
				
			||||||
@@ -28,32 +29,31 @@ create_zpool () {
 | 
				
			|||||||
		/dev/disk/by-id/"${1}"
 | 
							/dev/disk/by-id/"${1}"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdataset () {
 | 
				
			||||||
 | 
						mkdir -p "$1"
 | 
				
			||||||
 | 
						sudo zfs create -o mountpoint="$1" "$2"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
create_datasets () {
 | 
					create_datasets () {
 | 
				
			||||||
	DATASET=("${HOME}/Documents/.calibre" "${1}/LITERATURE")
 | 
						DATASET=("${HOME}/Documents/.calibre" "${1}/LITERATURE")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/Videos" "${1}/FILM")
 | 
						DATASET=("${HOME}/Videos" "${1}/FILM")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/.var/app/com.valvesoftware.Steam" "${1}/STEAMGAMES")
 | 
						DATASET=("${HOME}/.var/app/com.valvesoftware.Steam" "${1}/STEAMGAMES")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
 | 
						DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/Games" "${1}/GAMES")
 | 
						DATASET=("${HOME}/Games" "${1}/GAMES")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
	ln -s "${HOME}/.var/app/com.valvesoftware.Steam" "${DATASET[0]}/Steam"
 | 
						ln -s "${HOME}/.var/app/com.valvesoftware.Steam" "${DATASET[0]}/Steam"
 | 
				
			||||||
	ln -s "${HOME}/.var/app/org.libretro.RetroArch" "${DATASET[0]}/libRetro"
 | 
						ln -s "${HOME}/.var/app/org.libretro.RetroArch" "${DATASET[0]}/libRetro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
 | 
						DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${1}/RARCHGAMES")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdataset "${DATASET[0]}" "${DATASET[1]}"
 | 
				
			||||||
	sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DATASET=("${HOME}/.XXX" "${1}/XXX")
 | 
						DATASET=("${HOME}/.XXX" "${1}/XXX")
 | 
				
			||||||
	mkdir -p "${DATASET[0]}"
 | 
						mkdir -p "${DATASET[0]}"
 | 
				
			||||||
@@ -61,14 +61,16 @@ create_datasets () {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print_menu () {
 | 
					print_menu () {
 | 
				
			||||||
	echo "Placeholder content"
 | 
						echo "$(<"${SCRIPT_ROOT}"/zfs-media-drive.help)"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -z "$1" ]; then
 | 
					if [ -z "$1" ]; then
 | 
				
			||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ! [ -z "$1" ] && [ "$1" == "init" ]; then
 | 
					if [ -n "$1" ] && [ "$1" == "init" ]; then
 | 
				
			||||||
 | 
						shift
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	while getopts "d:p:k:f:c:v:" opt; do
 | 
						while getopts "d:p:k:f:c:v:" opt; do
 | 
				
			||||||
		case $opt in
 | 
							case $opt in
 | 
				
			||||||
			k) ZFS_KEY_LOC="${OPTARG}";;
 | 
								k) ZFS_KEY_LOC="${OPTARG}";;
 | 
				
			||||||
@@ -82,7 +84,7 @@ if ! [ -z "$1" ] && [ "$1" == "init" ]; then
 | 
				
			|||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ -z "$ZFS_TARGET_DRIVE" ]; then
 | 
						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
 | 
							exit 1
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user