package_manager=apt-get

update() {
	sudo "$package_manager" update
}

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

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

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


pre_install() {
	echo "Package perl-open is not available at Ubuntu repositories" >&2

	update

	if [[ $INSTALL_TSOCKS == true ]]; then
		install tsocks
	fi

	# asan an ubsan have to be installed together to not mix up gcc versions
	if install libasan5; then
		install libubsan1
	else
		echo "Latest libasan5 is not available" >&2
		echo "  installing libasan2 and corresponding libubsan0" >&2
		install libasan2
		install libubsan0
	fi
}

packages=(
	valgrind
	jq
	nvme-cli
	ceph
	gdb
	fio
	libaio-dev
	linux-headers-generic
	libgflags-dev
	autoconf
	automake
	libtool
	libmount-dev
	open-iscsi
	libglib2.0-dev
	libpixman-1-dev
	astyle
	elfutils
	libelf-dev
	flex
	bison
	libswitch-perl
	gdisk
	socat
	openssl
	sshfs
	sshpass
	python3-pandas
	bc
	smartmontools
	wget
	xfsprogs
	ibverbs-utils
	rdmacm-utils
	ruby-dev
	llvm
	avahi-daemon
	avahi-utils
)

install_vagrant_dependencies() {
	local vagrant_packages
	vagrant_packages=(
		qemu
		libvirt-bin
		ebtables
		dnsmasq-base
		libxslt-dev
		libxml2-dev
		libvirt-dev
		zlib1g-dev
		ruby-dev
	)

	install "${vagrant_packages[@]}"
}

if [[ $OSID != ubuntu ]]; then
	echo "Located apt-get package manager, but it was tested for Ubuntu only"
fi
