#!/bin/bash
###############################################################################
#                                                                             #
# IPFire.org - A linux based firewall                                         #
# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.org>                     #
#                                                                             #
# This program is free software: you can redistribute it and/or modify        #
# it under the terms of the GNU General Public License as published by        #
# the Free Software Foundation, either version 3 of the License, or           #
# (at your option) any later version.                                         #
#                                                                             #
# This program is distributed in the hope that it will be useful,             #
# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
# GNU General Public License for more details.                                #
#                                                                             #
# You should have received a copy of the GNU General Public License           #
# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
#                                                                             #
###############################################################################

case "$1" in
	ide)
		rm -f /var/ipfire/extrahd/scan
		for DEV in `find /sys/block/* -maxdepth 0 ! -name sr* ! -name ram* ! -name loop* -exec basename {} \; | sort | uniq`
		do
			VENDOR=`cat /sys/block/$DEV/device/vendor 2>/dev/null`
			MODEL=`cat /sys/block/$DEV/device/model 2>/dev/null`
			REV=`cat /sys/block/$DEV/device/rev 2>/dev/null`
			echo "$DEV;$VENDOR $MODEL $REV" >> /var/ipfire/extrahd/scan
		done
		;;
	partitions)
		cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[[:space:]]*$" | \
			while read device size; do
				[ -z "${device}" ] && continue
				echo "${device};${size};$(blkid -c /dev/null -s UUID -o value /dev/${device});"
			done > /var/ipfire/extrahd/partitions
		;;
	*)
		echo "Usage: $0 (ide|partitions)"
		;;
esac
