fabrica/.packer/post-processors/process-eole-db.sh

65 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
WORKDIR=${1}
sys_img=$(find ${WORKDIR} -name "*.img")
provisionDirectory=${2}
if [[ ! -d ${provisionDirectory} ]]
then
mkdir -p ${provisionDirectory}
fi
tmpMntPnt=$(mktemp -d)
tmpWorkDir=$(mktemp -d)
#
# $1 : qcow image
# $2 : mount point
#
function mountQcowImage()
{
guestmount -a $1 -i --ro ${2}
return ${?}
}
function getEoleDbConfig()
{
workdir=${1}
mntPnt=${2}
provisionDir=${3}
cd ${workdir}
cp ${mntPnt}/etc/eole/eole-db.d/* .
mkdir -p ${provisionDir}/etc/eole/eole-db.d
cp * ${provisionDir}/etc/eole/eole-db.d
cd -
}
function processConfiguration()
{
workdir=${1}
mntPnt=${2}
provisionDir=${3}
files=$(awk '/file:/ {gsub(/,|"|\047/,""); print $3}' ${mntPnt}/etc/eole/eole-db.d/*)
for file in ${files}
do
dirname=$(dirname ${file})
dest="${provisionDir}/${dirname}"
mkdir -p ${dest}
cp ${mntPnt}${file} ${dest}
done
}
mountQcowImage ${sys_img} ${tmpMntPnt}
getEoleDbConfig ${tmpWorkDir} ${tmpMntPnt} ${provisionDirectory}
processConfiguration ${tmpWorkDir} ${tmpMntPnt} ${provisionDirectory}
umount ${tmpMntPnt}
rm -rf ${tmpMntPnt}
#rm -rf ${tmpWorkDir}