blob: 86332d2371f4c4906d7bff7a6a39264bff01a137 [file] [log] [blame]
#!/bin/bash
# Copyright (c) 2022 The Regents of the University of California.
# SPDX-License-Identifier: BSD 3-Clause
# This file validates the `cloud.txt` and `arm-ubuntu.json` files before
# starting packer.
USER=`whoami`
HOSTNAME=`hostname`
# Check if the USER is `ubuntu`, otherwise tell the user to configure
# ssh-keygen and cloud.txt file.
if [ ! $USER = "ubuntu" ]; then
echo "The username is $USER"
echo "The script expects that the user HAVE ALREADY executed \"ssh-keygen\""
# Checking for the cloud.txt file
if [ ! -f "arm-ubuntu/cloud.txt" ]; then
echo "cloud.txt not found! Please refer to the README.md file on how to create the cloud.txt file."
exit
else
# cloud.txt file exists. Need to check whether it is modified or not.
count=`grep "name: ubuntu" arm-ubuntu/cloud.txt |wc -l`
if [ $count -ne 0 ]; then
echo "cloud.txt is not modified correctly! Please refer to the README.md file on how to modify name and ssh-rsa in the cloud.txt file."
exit
fi
# Checking whether the ssh-rsa line is modified.
KEY=`grep "ssh-rsa" arm-ubuntu/cloud.txt`
if [[ "$KEY" == *"$USER@$HOSTNAME"* ]]; then
echo "cloud.txt verified!"
else
echo "cloud.txt is not modified correctly! Please refer to the README.md file on how to modify ssh-rsa in the cloud.txt file."
exit
fi
fi
echo "All files are modified accordingly."
fi
# Modifying the json script.
sed "s/\/home\/ubuntu/\/home\/${USER}/g" arm-ubuntu/arm-ubuntu.json > arm-ubuntu/.arm-ubuntu.json
mv arm-ubuntu/.arm-ubuntu.json arm-ubuntu/arm-ubuntu.json
sed "s/\"ssh_username\": \"ubuntu\",/\"ssh_username\": \"${USER}\",/g" arm-ubuntu/arm-ubuntu.json > arm-ubuntu/.arm-ubuntu.json
mv arm-ubuntu/.arm-ubuntu.json arm-ubuntu/arm-ubuntu.json
# Modifying the post-installation script.
sed "s/\/home\/ubuntu/\/home\/${USER}/g" arm-ubuntu/post-installation.sh > arm-ubuntu/.post-installation.sh
mv arm-ubuntu/.post-installation.sh arm-ubuntu/post-installation.sh
# Downloading packer
PACKER_VERSION="1.8.0"
if [ ! -f ./packer ]; then
wget https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip;
unzip packer_${PACKER_VERSION}_linux_amd64.zip;
rm packer_${PACKER_VERSION}_linux_amd64.zip;
fi
# Validating and executing packer
./packer validate arm-ubuntu/arm-ubuntu.json
./packer build arm-ubuntu/arm-ubuntu.json
exit