soft-fork-tools/common.sh

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 "$@"
}