2025-09-16 18:09:45 +02:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# Create .swarmcd directory if needed
|
|
|
|
|
|
if [ ! -d .swarmcd ]; then
|
|
|
|
|
|
mkdir -p .swarmcd
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
tmpfile=$(mktemp)
|
|
|
|
|
|
|
|
|
|
|
|
# Make sure to cleanup our temp file on any kind of exit
|
|
|
|
|
|
trap 'rm -f "$tmpfile"' EXIT
|
|
|
|
|
|
|
|
|
|
|
|
# Find and sort all docker-compose.yml directories
|
|
|
|
|
|
find docker -name 'docker-compose.yml' -print0 \
|
|
|
|
|
|
| xargs -0 -n1 dirname \
|
|
|
|
|
|
| sed 's|^\./||' \
|
|
|
|
|
|
| sort \
|
|
|
|
|
|
| while read -r dir; do
|
|
|
|
|
|
file="$dir/docker-compose.yml"
|
2025-09-16 21:22:00 +02:00
|
|
|
|
|
|
|
|
|
|
# Discover env file if it exists, and add it to secret list
|
|
|
|
|
|
if [ -f "$dir/.env" ]; then
|
|
|
|
|
|
env=" sops_files:\n - $dir/.env\n"
|
|
|
|
|
|
else
|
|
|
|
|
|
env=""
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-09-16 18:09:45 +02:00
|
|
|
|
name=$(basename "$dir")
|
2025-09-16 21:22:00 +02:00
|
|
|
|
echo -e "$name:\n repo: homeprod\n branch: main\n compose_file: $file\n$env" >> "$tmpfile"
|
2025-09-16 18:09:45 +02:00
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
# Overwrite file on change
|
|
|
|
|
|
if ! [ -f .swarmcd/stacks.yaml ] || ! cmp -s "$tmpfile" .swarmcd/stacks.yaml; then
|
|
|
|
|
|
mv "$tmpfile" .swarmcd/stacks.yaml
|
|
|
|
|
|
echo "Updated .swarmcd/stacks.yaml!"
|
2026-05-14 11:35:13 +02:00
|
|
|
|
git add ".swarmcd/stacks.yaml"
|
2025-09-16 18:09:45 +02:00
|
|
|
|
else
|
|
|
|
|
|
echo "No changes to .swarmcd/stacks.yaml."
|
|
|
|
|
|
fi
|