I can no longer format SD card in Gnome with lowercase name (dont know why) hence the change to uppercase. Silenced error produced by clean target when trying to remove non-existent Docker image
104 lines
3.6 KiB
Makefile
104 lines
3.6 KiB
Makefile
.DEFAULT_GOAL:=build
|
|
|
|
TEMP_DIR=$(shell ./preflight)
|
|
DIST_DIR=${TEMP_DIR}/dist
|
|
DOT_ENV_FILE=${TEMP_DIR}/.env
|
|
DOT_ENV_PAIRS=$(shell cat ${DOT_ENV_FILE})
|
|
BUILD_ARGS=$(shell for ARG in ${DOT_ENV_PAIRS}; do echo "--build-arg $$ARG"; done;)
|
|
|
|
-include ${DOT_ENV_FILE}
|
|
|
|
vault/encrypt:
|
|
@echo "### Encrypting secrets..."
|
|
@./vault encrypt
|
|
@echo "### Encrypting done"
|
|
|
|
vault/decrypt:
|
|
@echo "### Decrypting secrets..."
|
|
@./vault decrypt
|
|
@echo "### Decrypting done"
|
|
|
|
init:
|
|
@echo "### Init..."
|
|
@./require ${DOT_ENV_FILE} alpine_source
|
|
@./require ${DOT_ENV_FILE} tailspin_bin
|
|
@echo "### Init done"
|
|
@make vault/decrypt
|
|
|
|
build: repository
|
|
@echo "### Assembling..."
|
|
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/ ${DIST_DIR}
|
|
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/local.d
|
|
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/runlevels/default
|
|
@touch ${TEMP_DIR}/overlay_headless/etc/.default_boot_services
|
|
-@ln -s /etc/init.d/local ${TEMP_DIR}/overlay_headless/etc/runlevels/default/local
|
|
@./src/esh -o ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start src/headless.start ${DOT_ENV_PAIRS}
|
|
@chmod +x ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start
|
|
@tar czf ${DIST_DIR}/headless.apkovl.tar.gz -C ${TEMP_DIR}/overlay_headless/ .
|
|
@rsync -chaz ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/ ${DIST_DIR}/extras
|
|
@cp ${CACHE_DIR}/tailspin/tspin ${DIST_DIR}
|
|
@./src/esh -o ${DIST_DIR}/hotspot.conf src/hotspot.conf ${DOT_ENV_PAIRS}
|
|
@./src/esh -o ${DIST_DIR}/wg0.conf src/wg0.conf ${DOT_ENV_PAIRS}
|
|
@cp secrets/*.psk ${DIST_DIR}
|
|
@cp secrets/authorized_keys ${DIST_DIR}
|
|
@cp src/config.toml ${DIST_DIR}
|
|
@cp src/logpattern.conf ${DIST_DIR}
|
|
@cp src/main.conf ${DIST_DIR}
|
|
@cp src/rsyslog.conf ${DIST_DIR}
|
|
@cp src/usercfg.txt ${DIST_DIR}
|
|
@cp src/watchdog.sh ${DIST_DIR}
|
|
@cp secrets/packager.rsa.pub ${DIST_DIR}
|
|
@cp src/repository-builder/${REQUIREMENTS_FILE} ${DIST_DIR}
|
|
@echo "### Assembling done"
|
|
|
|
card: clean build
|
|
@echo "### Copying to sdcard..."
|
|
@rsync -chavz --delete ${DIST_DIR}/ /media/$(shell whoami)/ENTROPI
|
|
@echo "### Copying to sdcard done"
|
|
-@make clean
|
|
|
|
clean:
|
|
@echo "### Cleaning..."
|
|
-@rm -rf ${DIST_DIR}
|
|
-@rm -rf tmp*
|
|
-@rm -f ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/${ALPINE_ARCH}/APKINDEX.tar.gz
|
|
-@docker rmi ${BUILDER_DOCKER_IMAGE} >/dev/null 2>&1
|
|
@echo "### Cleaning done"
|
|
|
|
mrproper: clean
|
|
@echo "### Purging cache..."
|
|
-@rm -rf ${CACHE_DIR}
|
|
@echo "### Done"
|
|
|
|
repository-builder: init
|
|
@mkdir -p ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
|
|
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/apks/ ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
|
|
|
|
@tar \
|
|
--exclude='.git' \
|
|
-czh ./src/repository-builder | docker build -f ./src/repository-builder/repository.Dockerfile \
|
|
--build-arg ALPINE_DOCKER_IMAGE=${ALPINE_DOCKER_IMAGE} \
|
|
--build-arg REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
|
|
--build-arg BUILDER_USER=${BUILDER_USER} \
|
|
--build-arg BUILDER_UID=${BUILDER_UID} \
|
|
--build-arg BUILDER_GID=${BUILDER_GID} \
|
|
-t ${BUILDER_DOCKER_IMAGE} -
|
|
|
|
repository: repository-builder
|
|
@echo "### Repository..."
|
|
@wget --quiet --spider https://alpinelinux.org/ && \
|
|
docker run --rm -ti \
|
|
-e ALPINE_ARCH=${ALPINE_ARCH} \
|
|
-e RELEASE_VERSION=${RELEASE_VERSION} \
|
|
-e REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
|
|
-e BUILDER_KEY_BASENAME=${BUILDER_KEY_BASENAME} \
|
|
-e BUILDER_UID=${BUILDER_UID} \
|
|
-e BUILDER_GID=${BUILDER_GID} \
|
|
-v $(PWD)/secrets/packager.rsa:/root/.abuild/packager.rsa \
|
|
-v $(PWD)/secrets/packager.rsa.pub:/root/.abuild/packager.rsa.pub \
|
|
-v $(PWD)/src/repository-builder/abuild.conf:/root/.abuild/abuild.conf \
|
|
-v ${CACHE_DIR}/aport:/mirror \
|
|
${BUILDER_DOCKER_IMAGE} build-repository \
|
|
|| echo "No Internet!!! Skipping repository..."
|
|
@echo "### Repository done"
|