#!/bin/sh

# List Firmware
__firmware_list() {
	echo "Listing Firmware..."
	zfs list -H | grep iohyve/Firmware | cut -f1 | cut -d '/' -f 4 | sed 1d
}

# Fetch Firmware
__firmware_fetch() {
	local url="$2"
	if [ -z "$url" ]; then
		printf "missing argument\nusage:\n"
		printf "\tfetchfw <URL>\n"
		exit 1
	fi
	local pool="$(zfs list -H | grep iohyve | cut -d '/' -f 1 | head -n1)"
	local name="$(basename $2)"
	echo "Fetching $url..."
	zfs create $pool/iohyve/Firmware/$name
	fetch $url -o /iohyve/Firmware/$name
}

# Copy Firmware from local machine
__firmware_copy() {
	local loc="$2"
	if [ -z "$loc" ]; then
		printf "missing argument\nusage:\n"
		printf "\tcpfw <path>\n"
		exit 1
	fi
	local pool="$(zfs list -H | grep iohyve | cut -d '/' -f 1 | head -n1)"
	local name="$(basename $loc)"
	echo "Copying $name from $loc..."
	zfs create $pool/iohyve/Firmware/$name
	cp $loc /iohyve/Firmware/$name
}

# Rename Firmware
__firmware_rename() {
	local pool="$(zfs list -H | grep iohyve | cut -d '/' -f 1 | head -n1)"
	local fw="$2"
	local name="$3"
	if [ -z "$name" ]; then
		printf "missing argument\nusage:\n"
		printf "\trenamefw <firmware> <newname>\n"
		exit 1
	fi
	echo "Renaming Firmware $2 to $3..."
	mv /iohyve/Firmware/$fw/$fw /iohyve/Firmware/$fw/$name
	zfs rename $pool/iohyve/Firmware/$fw $pool/iohyve/Firmware/$name
}

# Delete Firmware
__firmware_delete() {
	local name="$2"
	if [ -z "$name" ]; then
		printf "missing argument\nusage:\n"
		printf "\trmfw <firmware> <newname>\n"
		exit 1
	fi
	local pool="$(zfs list -H | grep iohyve | cut -d '/' -f 1 | head -n1)"
	echo "Deleting $name..."
	zfs destroy -rR $pool/iohyve/Firmware/$name
}
