110 lines
3.0 KiB
Bash
Executable File
110 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
: ${SOFTWARE:=forgejo}
|
|
: ${FEATURES:=forgejo-f3 forgejo-moderation forgejo-i18n forgejo-branding forgejo-dependency forgejo-privacy forgejo-development forgejo-ci}
|
|
: ${STABLE:=v1.18 v1.19 v1.20}
|
|
: ${STABLE_FEATURES:=forgejo-f3 forgejo-moderation forgejo-i18n forgejo-branding forgejo-dependency forgejo-privacy forgejo-development forgejo-ci}
|
|
: ${UPSTREAM_BRANCHES:=main release/v1.18 release/v1.19 release/v1.20}
|
|
: ${REMOTE:=origin}
|
|
|
|
declare -A BASE_BRANCH=(
|
|
forgejo-dependency forgejo-development
|
|
forgejo-f3 forgejo-development
|
|
forgejo-moderation forgejo-development
|
|
forgejo-i18n forgejo-development
|
|
forgejo-branding forgejo-development
|
|
forgejo-privacy forgejo-development
|
|
forgejo-development forgejo-ci
|
|
forgejo-ci main
|
|
|
|
v1.20/forgejo-f3 v1.20/forgejo-development
|
|
v1.20/forgejo-moderation v1.20/forgejo-development
|
|
v1.20/forgejo-dependency v1.20/forgejo-development
|
|
v1.20/forgejo-i18n v1.20/forgejo-development
|
|
v1.20/forgejo-branding v1.20/forgejo-development
|
|
v1.20/forgejo-privacy v1.20/forgejo-development
|
|
v1.20/forgejo-development v1.20/forgejo-ci
|
|
v1.20/forgejo-ci release/v1.20
|
|
|
|
v1.19/forgejo-dependency v1.19/forgejo-development
|
|
v1.19/forgejo-i18n v1.19/forgejo-development
|
|
v1.19/forgejo-branding v1.19/forgejo-development
|
|
v1.19/forgejo-privacy v1.19/forgejo-development
|
|
v1.19/forgejo-development v1.19/forgejo-ci
|
|
v1.19/forgejo-ci release/v1.19
|
|
|
|
v1.18/forgejo-i18n v1.18/forgejo-development
|
|
v1.18/forgejo-branding v1.18/forgejo-development
|
|
v1.18/forgejo-privacy v1.18/forgejo-development
|
|
v1.18/forgejo-a11y v1.18/forgejo-development
|
|
v1.18/forgejo-development v1.18/forgejo-ci
|
|
v1.18/forgejo-ci release/v1.18
|
|
)
|
|
|
|
function get_gitea_branch() {
|
|
local branch=$1
|
|
local base_branch="${BASE_BRANCH[$branch]}"
|
|
if test "$base_branch"; then
|
|
get_gitea_branch $base_branch
|
|
else
|
|
echo $branch
|
|
fi
|
|
}
|
|
|
|
if test $(id -u) != 0 ; then
|
|
SUDO=sudo
|
|
fi
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
TODAY=$(date +%F)
|
|
|
|
function cleanup_tmp() {
|
|
rm -fr ${TMP_DIR}
|
|
TMP_DIR=$(mktemp -d)
|
|
}
|
|
|
|
function teardown() {
|
|
for f in $(set | sed -n -e 's/^\([0-9a-z_]*_teardown\) .*/\1/p'); do
|
|
$f || true
|
|
done
|
|
cleanup_tmp
|
|
}
|
|
|
|
function setup() {
|
|
for f in $(set | sed -n -e 's/^\([0-9a-z_]*_setup\) .*/\1/p'); do
|
|
$f || true
|
|
done
|
|
}
|
|
|
|
function install_packages() {
|
|
local packages="jq git rsync"
|
|
if ! which $packages >/dev/null ; then
|
|
$SUDO apt-get update --quiet
|
|
$SUDO apt-get install -qq -y $packages
|
|
fi
|
|
}
|
|
|
|
function comment_file() {
|
|
cat "$1" | sed -e 's/^/# /'
|
|
}
|
|
|
|
function comment_commits() {
|
|
echo "#"
|
|
git show --no-patch --pretty="%h %s" $@ | sed -e 's/^/# /'
|
|
echo "#"
|
|
}
|
|
|
|
function comment_header() {
|
|
echo "#"
|
|
comment_line "$@"
|
|
echo "#"
|
|
}
|
|
|
|
function comment_line() {
|
|
echo "# $@"
|
|
}
|
|
|
|
function dry_run() {
|
|
echo "$@"
|
|
}
|