package_manager=yum

upgrade() {
	sudo "$package_manager" upgrade -y
}

install() {
	(($#)) || return 0

	sudo "$package_manager" install -y "$@"
}

packages=(
	astyle-devel
	autoconf
	automake
	bc
	bison
	ceph
	clang-analyzer
	elfutils
	elfutils-libelf-devel
	ethtool
	fio
	flex
	gdb
	gdisk
	gflags-devel
	glib2-devel
	iptables
	iscsi-initiator-utils
	jq
	kernel-devel
	kernel-modules-extra
	libabigail
	libaio-devel
	libasan
	libibverbs-utils
	libmount-devel
	librdmacm-utils
	libtool
	libubsan
	llvm
	nvme-cli
	openssl
	pciutils
	perl-open
	perl-Switch
	pixman-devel
	pmempool
	python3
	rpm-build
	rpmdevtools
	ruby-devel
	smartmontools
	socat
	sshfs
	systemd-devel
	targetcli
	valgrind
	wget
	xfsprogs
	xxd
)

if [[ $OSID != centos && $OSID != rocky && $OSID != rhel ]]; then
	packages+=(btrfs-progs)
	packages+=(avahi)
	packages+=(avahi-tools)
elif [[ $OSID == rocky ]]; then
	# 8 and 9 comes with a kernel which does not support btrfs
	packages+=(avahi)
	packages+=(avahi-tools) # from the devel repo
elif [[ $OSID == centos ]]; then
	packages+=(avahi)
	# 8 comes with a kernel which does not support btrfs.
	# 8 does not come with any common repos that include avahi-tools.
	if [[ $OSVERSION == 7* ]]; then
		packages+=(avahi-tools)
		packages+=(btrfs-progs)
	fi
elif [[ $OSID == rhel ]]; then
	packages+=(avahi)
	if [[ $OSVERSION == 9* ]]; then
		packages+=("https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/i/isns-utils-devel-0.101-4.el9.x86_64.rpm")
	elif [[ $OSVERSION == 8* ]]; then
		packages+=("https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/isns-utils-devel-0.99-1.el8.x86_64.rpm")
	fi
	# FIXME: This does not fit here, but there's no sane alternative. Using RPMs from other sources will fail to meet
	# dependencies anyway.
	pip3 install pandas
fi

if [[ $OSID != rhel ]]; then
	packages+=(isns-utils-devel)
	packages+=(python3-pandas)
fi

if [[ $OSID == centos && $OSVERSION == 8* ]]; then
	packages+=("https://rpmfind.net/linux/centos/8-stream/AppStream/x86_64/os/Packages/sshpass-1.09-4.el8.x86_64.rpm")
else
	packages+=(sshpass)
fi

if [[ $OSID == fedora ]] && ((OSVERSION == 34)); then
	packages+=(bpftrace)
fi

if [[ $OSID == fedora ]] && ((OSVERSION >= 37)); then
	packages+=(iproute-tc)
fi

pre_install() { :; }
