|
- #!/bin/bash
- #
- # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
- #
- # Installs Packer and the Packer Vultr plugin.
- #
- # It is safe to run this command multiple times, it is idempotent.
- #
- function die {
- echo 1>&2 "${1}"
- exit 1
- }
-
- PLATFORM="$(uname -s)"
- ARCH="$(uname -m)"
- if [[ "${ARCH}" == "x86_64" ]] ; then
- VULTR_ARCH="amd64"
- elif [[ "${ARCH}" == "arm64" ]] ; then
- VULTR_ARCH="arm64"
- fi
-
- CURL=""
- if [[ -z "$(which curl)" ]] ; then
- if [[ -f /usr/bin/curl ]] ; then
- CURL=/usr/bin/curl
- fi
- else
- CURL="$(which curl)"
- fi
-
- # Install packer
- if [[ ! -f ${HOME}/packer/packer ]] ; then
- PACKER_VERSION=1.8.3
- if [[ "${PLATFORM}" == "Darwin" ]] ; then
- PACKER_FILE=packer_${PACKER_VERSION}_darwin_amd64.zip
- elif [[ "${PLATFORM}" == "Linux" ]] ; then
- PACKER_FILE=packer_${PACKER_VERSION}_linux_amd64.zip
- else
- die "Add packer support to script ${0} for platform ${PLATFORM}"
- fi
- PACKER_URL=https://releases.hashicorp.com/packer/${PACKER_VERSION}/${PACKER_FILE}
- mkdir -p ${HOME}/packer && cd ${HOME}/packer && "${CURL}" -L ${PACKER_URL} -o ${PACKER_FILE} && unzip ${PACKER_FILE} || die "Error installing packer"
- echo "Packer successfully installed"
- else
- echo "Packer already installed"
- fi
-
- # Install packer Vultr plugin
- if [[ ! -f ${HOME}/.packer.d/plugins/packer-builder-vultr ]] ; then
- PACKER_VULTR_VERSION=2.4.5
- if [[ "${PLATFORM}" == "Darwin" ]] ; then
- PACKER_VULTR_FILE=packer-plugin-vultr_v${PACKER_VULTR_VERSION}_x5.0_darwin_${VULTR_ARCH}.zip
- elif [[ "${PLATFORM}" == "Linux" ]] ; then
- PACKER_VULTR_FILE=packer-plugin-vultr_v${PACKER_VULTR_VERSION}_x5.0_linux_${VULTR_ARCH}.zip
- elif [[ "${PLATFORM}" == "Windows" ]] ; then
- PACKER_VULTR_FILE=packer-plugin-vultr_v${PACKER_VULTR_VERSION}_x5.0_windows_${VULTR_ARCH}.zip
- else
- die "Add packer vultr support to script ${0} for platform ${PLATFORM}"
- fi
- PACKER_VULTR_URL=https://github.com/vultr/packer-plugin-vultr/releases/download/v${PACKER_VULTR_VERSION}/${PACKER_VULTR_FILE}
- echo "PACKER_VULTR_URL is ${PACKER_VULTR_URL}"
- mkdir -p ${HOME}/.packer.d/plugins \
- && cd ${HOME}/.packer.d/plugins \
- && "${CURL}" -L ${PACKER_VULTR_URL} -o ${PACKER_VULTR_FILE} \
- && unzip ${PACKER_VULTR_FILE} \
- || die "Error installing packer vultr plugin"
- echo "Packer Vultr plugin successfully installed"
- else
- echo "Packer vultr plugin already installed"
- fi
|