From 10d1df039a32a3b8c96ec1477cb8d360147fb678 Mon Sep 17 00:00:00 2001 From: delta Date: Tue, 31 Aug 2021 22:21:02 +0800 Subject: [PATCH 1/6] added templating for distributions --- configs/reprepro-distributions.temp | 8 ++++++++ scripts/create-distros.sh | 32 +++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 configs/reprepro-distributions.temp create mode 100644 scripts/create-distros.sh diff --git a/configs/reprepro-distributions.temp b/configs/reprepro-distributions.temp new file mode 100644 index 0000000..dc31a5a --- /dev/null +++ b/configs/reprepro-distributions.temp @@ -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}} diff --git a/scripts/create-distros.sh b/scripts/create-distros.sh new file mode 100644 index 0000000..ce233c4 --- /dev/null +++ b/scripts/create-distros.sh @@ -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 From 07ecae0c58184f71b38da52ff0dd2023827d81b7 Mon Sep 17 00:00:00 2001 From: delta Date: Tue, 31 Aug 2021 22:21:11 +0800 Subject: [PATCH 2/6] added templating to docker build --- Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index 0b111ed..a04aeab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 From d4ab97962e0cf4896011a59c7d0a6e62113b6b5a Mon Sep 17 00:00:00 2001 From: delta Date: Tue, 31 Aug 2021 22:22:07 +0800 Subject: [PATCH 3/6] used EASYREPO_SUITES variable for repo init --- scripts/reprepro-import.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/reprepro-import.sh b/scripts/reprepro-import.sh index d40998c..d31d96c 100644 --- a/scripts/reprepro-import.sh +++ b/scripts/reprepro-import.sh @@ -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 $i | sed "s/\,/ /g")) + reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks ${g[0]} +done + + # # See if we found any new packages # From 2cb08138b00b7f7844bf636837ad3b3f023395e4 Mon Sep 17 00:00:00 2001 From: delta Date: Tue, 31 Aug 2021 22:22:35 +0800 Subject: [PATCH 4/6] added tempating on start command --- scripts/start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/start.sh b/scripts/start.sh index 1e6534c..7db6906 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -30,6 +30,9 @@ crontab <> /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 From b04d3be75682bc873cb461fc92c04bcb45fd6393 Mon Sep 17 00:00:00 2001 From: delta Date: Wed, 1 Sep 2021 00:23:09 +0800 Subject: [PATCH 5/6] used bash for reprepro-import --- scripts/reprepro-import.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/reprepro-import.sh b/scripts/reprepro-import.sh index d31d96c..541fd46 100644 --- a/scripts/reprepro-import.sh +++ b/scripts/reprepro-import.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash BASEDIR=/var/lib/reprepro INCOMING=/docker/incoming From 6601b0ef3560e69125a7bfd5ab3a5e0ba5adf61b Mon Sep 17 00:00:00 2001 From: delta Date: Wed, 1 Sep 2021 00:38:54 +0800 Subject: [PATCH 6/6] fixed for loop on initialization --- scripts/reprepro-import.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/reprepro-import.sh b/scripts/reprepro-import.sh index 541fd46..57c2d94 100644 --- a/scripts/reprepro-import.sh +++ b/scripts/reprepro-import.sh @@ -15,9 +15,9 @@ cd .. # 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") +for k in $(echo ${EASYREPO_SUITES} | sed "s/\// /g") do - g=($(echo $i | sed "s/\,/ /g")) + g=($(echo $k | sed "s/\,/ /g")) reprepro -V --basedir $BASEDIR --outdir $OUTDIR createsymlinks ${g[0]} done