.EXPORT_ALL_VARIABLES:

MACADDRESS=$(shell openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$$//' )
SHELL := /bin/bash
DIST := bionic xenial

PACKER_VERSION = 1.6.4

UNAME := $(shell uname -s)
ifeq ($(UNAME),Linux)
    OS := linux
    WGET := wget -c -q
else
    OS := darwin
    WGET := curl -fsSO
endif

PACKER_ARCHIVE := packer_$(PACKER_VERSION)_$(OS)_amd64.zip


all: packer $(DIST)

$(PACKER_ARCHIVE):
	$(WGET) "https://releases.hashicorp.com/packer/$(PACKER_VERSION)/$(PACKER_ARCHIVE)"

packer: clean $(PACKER_ARCHIVE)
	unzip $(PACKER_ARCHIVE)

xenial: packer
	DISTRO_NAME=ubuntu DISTRO_CODENAME=xenial DISTRO_VERSION=16.04 OUTPUT_DIR=ip-xenial-twitch ./packer build packer.json
	DISTRO_NAME=ubuntu DISTRO_CODENAME=xenial DISTRO_VERSION=16.04 ./packer build -var macaddress=$(MACADDRESS) validate.json

bionic: packer
	DISTRO_NAME=ubuntu DISTRO_CODENAME=bionic DISTRO_VERSION=18.04 OUTPUT_DIR=ip-bionic-twitch ./packer build packer.json
	DISTRO_NAME=ubuntu DISTRO_CODENAME=bionic DISTRO_VERSION=18.04 ./packer build -var macaddress=$(MACADDRESS) validate.json

clean:
	for dist in $(DIST) ; do rm -rf "ip-$${dist}" "ip-$${dist}-twitch"; done
	rm -rf ./fpm/
	rm -rf ./packer

.PHONY: all $(DIST) clean
