54 lines
1.3 KiB
Bash
Executable File
54 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$ROOT"
|
|
|
|
if [[ $# -eq 1 ]]; then
|
|
version="$1"
|
|
|
|
package_name="ekklesia-classroom_${version}_amd64.deb"
|
|
package_path="$ROOT/repo/packages/$package_name"
|
|
|
|
if [[ ! -f "$package_path" ]]; then
|
|
echo "Package does not exist locally:"
|
|
echo "$package_path"
|
|
exit 1
|
|
fi
|
|
|
|
hash="$(sha256sum "$package_path" | awk '{print $1}')"
|
|
|
|
mkdir -p "$ROOT/repo/stable"
|
|
|
|
cat > "$ROOT/repo/stable/manifest.json" <<EOF
|
|
{
|
|
"version": "$version",
|
|
"package": "/packages/$package_name",
|
|
"sha256": "$hash",
|
|
"requires_reboot": true
|
|
}
|
|
EOF
|
|
else
|
|
if [[ ! -f "$ROOT/repo/canary/manifest.json" ]]; then
|
|
echo "No local canary manifest exists."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$ROOT/repo/stable"
|
|
cp "$ROOT/repo/canary/manifest.json" "$ROOT/repo/stable/manifest.json"
|
|
|
|
version="$(python3 -c \
|
|
'import json; print(json.load(open("repo/stable/manifest.json"))["version"])')"
|
|
fi
|
|
|
|
echo "Promoting $version to STABLE"
|
|
|
|
rsync -av \
|
|
-e ssh \
|
|
"$ROOT/repo/stable/manifest.json" \
|
|
classroom-control:/srv/ekklesia/classroom-updates/stable/manifest.json
|
|
|
|
echo
|
|
echo "Ekklesia Classroom $version is now STABLE"
|
|
echo "https://updates.riverofglorymn.org/stable/manifest.json"
|