Merge pull request #6 from delta523/master

Auto-configure reprepro-distributions from environment variables (#5)
This commit is contained in:
Glenn Y. Rolland 2022-04-25 15:10:27 +02:00 committed by GitHub
commit c9b0d21d95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 60 additions and 5 deletions

View file

@ -27,6 +27,11 @@ RUN chmod 755 /usr/local/sbin/reprepro-import
RUN mkdir -p /var/lib/reprepro/conf
ADD configs/reprepro-distributions /var/lib/reprepro/conf/distributions
# reprepro config generator
ADD scripts/create-distros.sh /usr/local/sbin/create-distros
RUN chmod 755 /usr/local/sbin/create-distros
ADD configs/reprepro-distributions.temp /etc/reprepro-distributions.temp
# Configure nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN rm -f /etc/nginx/sites-enabled/default

View file

@ -0,0 +1,8 @@
Origin: {{EASYREPO_ORIGIN}}
Label: {{EASYREPO_LABEL}}
Suite: {{EASYREPO_SUITE}}
Codename: {{EASYREPO_CODENAME}}
Version: 3.1
Architectures: {{EASYREPO_ARCHITECTURES}}
Components: main non-free contrib
Description: {{EASYREPO_DESCRIPTION}}

32
scripts/create-distros.sh Normal file
View file

@ -0,0 +1,32 @@
#!/usr/bin/env bash
REPREPRO_DIST="${REPREPRO_OVERRIDE:-/var/lib/reprepro/conf/distributions}"
# path to template file
REPREPRO_DIST_TEMP="/etc/reprepro-distributions.temp"
# Default results to configs/reprepro-distributions
EASYREPO_SUITES="${EASYREPO_SUITES:-unstable,sid/stable,buster/testing,bullseye}"
EASYREPO_ORIGIN="${EASYREPO_ORIGIN:-Test Origin}"
EASYREPO_LABEL="${EASYREPO_LABEL:-Easy Debian Repository}"
EASYREPO_ARCHITECTURES="${EASYREPO_ARCHITECTURES:-i386 amd64 powerpc source}"
EASYREPO_DESCRIPTION="${EASYREPO_LABEL:-Easy Debian Repository}"
# Empty the file
echo -n > $REPREPRO_DIST
# Slash delimited
for i in $(echo ${EASYREPO_SUITES} | sed "s/\// /g")
do
g=($(echo $i | sed "s/\,/ /g"))
sed -e "s/{{EASYREPO_ORIGIN}}/${EASYREPO_ORIGIN}/" \
-e "s/{{EASYREPO_LABEL}}/${EASYREPO_LABEL}/" \
-e "s/{{EASYREPO_SUITE}}/${g[0]}/" \
-e "s/{{EASYREPO_CODENAME}}/${g[1]}/" \
-e "s/{{EASYREPO_ARCHITECTURES}}/${EASYREPO_ARCHITECTURES}/" \
-e "s/{{EASYREPO_DESCRIPTION}}/${EASYREPO_DESCRIPTION}/" $REPREPRO_DIST_TEMP >> $REPREPRO_DIST
echo "" >> $REPREPRO_DIST
done
# Remove last line
sed -i '$ d' $REPREPRO_DIST

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
BASEDIR=/var/lib/reprepro
INCOMING=/docker/incoming
@ -11,10 +11,17 @@ cd $INCOMING
cd ..
#set -x
reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks stable
reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks jessie
reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks unstable
reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks sid
# Check for EASYREPO_SUITES to create symlinks
EASYREPO_SUITES="${EASYREPO_SUITES:-unstable,sid/stable,buster/testing,bullseye}"
for k in $(echo ${EASYREPO_SUITES} | sed "s/\// /g")
do
g=($(echo $k | sed "s/\,/ /g"))
reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks ${g[0]}
done
#
# See if we found any new packages
#

View file

@ -30,6 +30,9 @@ crontab <<EOF
* * * * * /usr/local/sbin/reprepro-import >> /var/log/reprepro.log
EOF
# run distro config generator
/usr/local/sbin/create-distros
# run import once, to create the right directory structure
/usr/local/sbin/reprepro-import