automate/020_gitea_dpr.sh

56 lines
1.8 KiB
Bash

#!/usr/bin/env bash
# Add a sources.list that points to the gitea instance.
# https://docs.gitea.com/usage/packages/debian
GITEA_URL="git2.ring-zero.co.uk"
OWNER="cyteen"
DISTRIBUTION="ceres"
COMPONENT="main"
KEYRING="/etc/apt/trusted.gpg.d/gitea-${OWNER}.gpg"
# system wide keyrings conflict with trusted.gpg
if [ -f /etc/apt/keyrings/gitea-cyteen.asc ]; then
rm /etc/apt/keyrings/gitea-cyteen.asc
fi
# the existance of the apt_auth is the only difference.
# cat <<-EOF | sudo tee /etc/apt/sources.list.d/gitea.list
# deb [signed-by=${KEYRING}] https://${GITEA_URL}/api/packages/${OWNER}/debian ${DISTRIBUTION} ${COMPONENT}
# EOF
USERNAME="cyteen"
PASSWORD="mlpfinsonik"
cat <<-EOF | sudo tee /etc/apt/sources.list.d/gitea-private.list
deb [signed-by=${KEYRING}] https://${GITEA_URL}/api/packages/${OWNER}/debian ${DISTRIBUTION} ${COMPONENT}
EOF
# fetch the gitea signed-by key
curl -fsSL https://${GITEA_URL}/api/packages/${OWNER}/debian/repository.key | gpg --dearmor -q | sudo tee ${KEYRING} >/dev/null
# rather than put username:password@ in the url to gitea we use apt_auth
conf_print_apt_auth() {
cat <<-EOF
machine ${GITEA_URL}
login ${USERNAME}
password ${PASSWORD}
EOF
}
if [ ! -f /etc/apt/auth.conf.d/${GITEA_URL} ]; then
conf_print_apt_auth | sudo tee /etc/apt/auth.conf.d/${GITEA_URL} >/dev/null
fi
sudo apt-get update
# # Publish a package
# ARCHIVE="/var/cache/apt/archives/"
# PACKAGE="rustc_1.70.0+dfsg1-7_amd64.deb"
# curl --user your_username:your_password_or_token \
# --upload-file ${ARCHIVE}/${PACKAGE} \
# https://${GITEA_URL}/api/packages/${OWNER}/debian/pool/${DISTRIBUTION}/${COMPONENT}/upload
#
# # Delete a package
# curl --user ${USERNAME}:${PASSWORD} -X DELETE \
# https://${GITEA_URL}/api/packages/${OWNER}/debian/pools/${DISTRIBUTION}/main/test-package/1.0.0/amd64