mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:42:09 +02:00
77 lines
2.2 KiB
Bash
Executable File
77 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# WARNING: DO NOT RUN THIS SCRIPT UNLESS YOU KNOW WHAT YOU ARE DOING.
|
|
|
|
set -euo pipefail
|
|
|
|
command -v debuild >/dev/null 2>&1 || { echo "debuild not found. Install devscripts." >&2; exit 1; }
|
|
command -v dput >/dev/null 2>&1 || { echo "dput not found." >&2; exit 1; }
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
|
ROOT_DIR="$(cd -- "$SCRIPT_DIR/.." >/dev/null 2>&1 && pwd)"
|
|
OUT_DIR="$(dirname "$ROOT_DIR")"
|
|
PPA="ppa:zhangsongcui3371/fastfetch"
|
|
CODENAMES=( jammy noble plucky questing resolute )
|
|
DRY_RUN=0
|
|
|
|
if [[ -d "$OUT_DIR/build" ]]; then
|
|
echo "Output directory exists: $OUT_DIR/build" >&2
|
|
echo "Please move or delete it before proceeding." >&2
|
|
exit 1
|
|
fi
|
|
|
|
TEMPLATE="$ROOT_DIR/debian/changelog.tpl"
|
|
CHANGELOG_DEBIAN="$ROOT_DIR/debian/changelog"
|
|
|
|
if [[ ! -f "$TEMPLATE" ]]; then
|
|
echo "Template not found: $TEMPLATE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q '#UBUNTU_CODENAME#' "$TEMPLATE"; then
|
|
echo "Template missing placeholder: #UBUNTU_CODENAME#" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "IMPORTANT: Before proceeding, please ensure that 'debian/changelog.tpl' is up-to-date"
|
|
echo " with the correct version number, release notes, and maintainer information."
|
|
echo
|
|
echo " The template must contain a placeholder like '#UBUNTU_CODENAME#' for the codename."
|
|
echo
|
|
read -p "Have you reviewed and updated 'debian/changelog.tpl'? (y/N): " -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
cleanup() {
|
|
rm -f "$CHANGELOG_DEBIAN"
|
|
rm -f "$ROOT_DIR/debian/files"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
shopt -s nullglob
|
|
|
|
for codename in "${CODENAMES[@]}"; do
|
|
echo "==> Publishing distro: $codename"
|
|
sed "s/#UBUNTU_CODENAME#/${codename}/g" "$TEMPLATE" > "$CHANGELOG_DEBIAN"
|
|
|
|
( cd "$ROOT_DIR" && debuild -S -i -I )
|
|
|
|
changes=( "$OUT_DIR"/fastfetch_*~${codename}_source.changes )
|
|
if [[ ${#changes[@]} -ne 1 ]]; then
|
|
echo "Unable to uniquely identify .changes for '$codename' in: $OUT_DIR" >&2
|
|
printf 'Found:\n'; printf ' %s\n' "${changes[@]}" >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
if [[ $DRY_RUN -eq 1 ]]; then
|
|
echo "[DRY-RUN] dput \"$PPA\" \"${changes[0]}\""
|
|
else
|
|
dput "$PPA" "${changes[0]}"
|
|
fi
|
|
|
|
rm -f "$OUT_DIR"/fastfetch_*~${codename}_source.{changes,dsc,tar.*}
|
|
|
|
echo "<== Done: $codename"
|
|
done
|