SHELL := /bin/sh

# --- configurable ----------------------------------------------------
IMAGE_NAME    = alpine-vm
IMAGE_SIZE    ?= 2G
IMAGE_FORMAT  = raw
ALPINE_BRANCH ?= latest-stable
KERNEL_FLAVOR ?= virt
#INITFS_FEATURES ?= kms scsi virtio

IMAGE_FILE     = vm.$(IMAGE_FORMAT)
SCRIPT_DIR     = $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
OVERLAY_DIR    = $(SCRIPT_DIR)/overlay
CONFIGURE_SH   = $(SCRIPT_DIR)/configure.sh

build:
	@echo ">>> Building $(IMAGE_FILE) ..."
	@test -f $(OVERLAY_DIR)/root/gpg-key.asc || { \
		echo "ERROR: GPG key not found. Generate key first" >&2; \
		exit 1; \
	}
	alpine-make-vm-image \
		--branch         $(ALPINE_BRANCH) \
		--image-format   $(IMAGE_FORMAT) \
		--image-size     $(IMAGE_SIZE) \
		--kernel-flavor  $(KERNEL_FLAVOR) \
		--serial-console \
		--fs-skel-dir    $(OVERLAY_DIR) \
		--fs-skel-chown  root:root \
		--script-chroot \
		--packages       "python3 py3-yaml py3-pydantic git curl gnupg docker docker-cli-buildx docker-cli-compose cronie" \
		$(IMAGE_FILE) \
		$(CONFIGURE_SH)
	@echo ">>> Image built: $(IMAGE_FILE)"
	@ls -lh $(IMAGE_FILE)

.PHONY: build
