From ae19f8d2287ee07b05861cd96b0e597a8d873ded Mon Sep 17 00:00:00 2001 From: xyhhx Date: Tue, 2 Apr 2024 00:47:57 -0400 Subject: [PATCH] feat: add lint task, check for required stages refs #9 --- Makefile | 4 ++++ src/lint.sh | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 src/lint.sh diff --git a/Makefile b/Makefile index 1740431..959c4db 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,10 @@ all: \ compat: ./src/compat.sh +.PHONY: lint +lint: + ./src/lint.sh + .PHONY: preseed preseed: ./src/preseed.sh diff --git a/src/lint.sh b/src/lint.sh new file mode 100755 index 0000000..5a2eebe --- /dev/null +++ b/src/lint.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -eu + +has-stage () { + grep -rnw ./packages/*/Containerfile -e "^FROM.*${1}$" | awk -F"/" '{ print $3 }' | sort +} + +check-stages () { + all_packages=$(ls -1 ./packages | sort) + + stages="base fetch build install test package" + + for stage in $stages; do + missing=$(comm -13 <(has-stage "${stage}") <(ls -1 ./packages | sort)) + if [ $(printf "${missing}" | wc -l) -gt "0" ]; then + echo "${missing}" | xargs printf "%s is missing '${stage}' stage\n" + fi + done + +} + +check-stages