#!/bin/bash
# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.

# download os rootfs.
# 1. download default os rootfs openeuler aarch64 20.03
# example usage:
#      ./download-rootfs
# 2. download os rootfs you want by add params $os, $os_arch, $os_version.
# example usage:
#      ./download-rootfs debian aarch64 sid

os=${1:-openeuler}
os_arch=${2:-$(arch)}
os_version=${3:-20.03}

. ${CCI_SRC}/container/defconfig.sh
. ${CCI_SRC}/lib/log.sh

load_cci_defaults

rootfs_dir="/srv/os/${os}/${os_arch}/${os_version}"
osimage_dir="/srv/initrd/osimage/${os}/${os_arch}/${os_version}"

# fix files permissions cause failed to run qemu test
umask 002

mkdir -p $rootfs_dir $osimage_dir

wget_download()
{
	local download_url=$1
	wget $download_url || {
	        log_error "failed to download file: $download_url"
	        exit 1
	}
}

download_os_rootfs()
{
	cd $rootfs_dir && {
		wget_download "https://repo.oepkgs.net/openEuler/compass-ci/os/${os}/${os_arch}/${os_version}.cgz"
	
		gzip -dc ${os_version}.cgz | cpio -id --quiet
		rm -rf ${os_version}.cgz
	}
}

download_osimage()
{
	cd $osimage_dir && {
		wget_download "https://repo.oepkgs.net/openEuler/compass-ci/initrd/osimage/${os}/${os_arch}/${os_version}/current"
		wget_download "https://repo.oepkgs.net/openEuler/compass-ci/initrd/deps/nfs/debian/${os_arch}/sid/run-ipconfig.cgz"
	}
}

is_virtual()
{
	dmidecode -s system-product-name | grep -iq "virtual"
}

is_virtual || ( download_os_rootfs && download_osimage )
