.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} 1> /dev/null @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"