From b4d412f490bc56601d930ae93362068dc11a7d26 Mon Sep 17 00:00:00 2001
From: Mate Farkas <mate.farkas@sch.hu>
Date: Mon, 11 Jun 2018 22:04:57 +0100
Subject: [PATCH] xenial:repogen has been added.

---
 docker/xenial/repogen/.gitignore              |   4 +++
 docker/xenial/repogen/Dockerfile              |  13 +++++++
 docker/xenial/repogen/Makefile                |   8 +++++
 docker/xenial/repogen/README.md               |   8 +++++
 docker/xenial/repogen/repodir/indeed.key      |  29 ++++++++++++++++
 docker/xenial/repogen/repodir/indeed.list     |   2 ++
 .../repogen/repodir/pool/hello_1.0.0_all.deb  | Bin 0 -> 710 bytes
 .../usr/local/bin/generate-apt-metadata       |  32 ++++++++++++++++++
 8 files changed, 96 insertions(+)
 create mode 100644 docker/xenial/repogen/.gitignore
 create mode 100644 docker/xenial/repogen/Dockerfile
 create mode 100644 docker/xenial/repogen/Makefile
 create mode 100644 docker/xenial/repogen/README.md
 create mode 100644 docker/xenial/repogen/repodir/indeed.key
 create mode 100644 docker/xenial/repogen/repodir/indeed.list
 create mode 100644 docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb
 create mode 100644 docker/xenial/repogen/usr/local/bin/generate-apt-metadata

diff --git a/docker/xenial/repogen/.gitignore b/docker/xenial/repogen/.gitignore
new file mode 100644
index 0000000..89ca4e5
--- /dev/null
+++ b/docker/xenial/repogen/.gitignore
@@ -0,0 +1,4 @@
+repodir/Packages
+repodir/Release
+repodir/Release.gpg
+
diff --git a/docker/xenial/repogen/Dockerfile b/docker/xenial/repogen/Dockerfile
new file mode 100644
index 0000000..8916236
--- /dev/null
+++ b/docker/xenial/repogen/Dockerfile
@@ -0,0 +1,13 @@
+FROM ubuntu:16.04
+MAINTAINER Mate Farkas <mate.farkas@sch.hu>
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get -y update && apt-get install -y \
+  apt-utils
+
+ADD usr/local/bin/generate-apt-metadata /usr/local/bin/generate-apt-metadata
+RUN chmod a+x /usr/local/bin/generate-apt-metadata
+
+CMD /usr/local/bin/generate-apt-metadata
+
diff --git a/docker/xenial/repogen/Makefile b/docker/xenial/repogen/Makefile
new file mode 100644
index 0000000..e21ef97
--- /dev/null
+++ b/docker/xenial/repogen/Makefile
@@ -0,0 +1,8 @@
+TAG='matefarkas/xenial:repogen'
+
+all:
+	docker build --tag ${TAG} ${PWD}
+
+test:
+	docker run -it --rm --volume ${PWD}/repodir/:/build/ --volume ~/.gnupg/:/root/.gnupg/:ro ${TAG}
+
diff --git a/docker/xenial/repogen/README.md b/docker/xenial/repogen/README.md
new file mode 100644
index 0000000..ce3d783
--- /dev/null
+++ b/docker/xenial/repogen/README.md
@@ -0,0 +1,8 @@
+# matefarkas/xenial:repogen
+
+DEB repo metadata generator.
+
+## alias
+
+    alias repogen-apt='docker run -it --rm --volume $PWD:/build/ --volume ~/.gnupg/:/root/.gnupg/:ro matefarkas/xenial:repogen'
+
diff --git a/docker/xenial/repogen/repodir/indeed.key b/docker/xenial/repogen/repodir/indeed.key
new file mode 100644
index 0000000..446d38d
--- /dev/null
+++ b/docker/xenial/repogen/repodir/indeed.key
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQINBFjmwNEBEACpG3M2mxamjG2w8o4Ll+qI0YkhldMfKCjjr/3T3P+mT+7QNmCS
+2eK6esmyrlpOwBk2uAAcD28iuewxfbMK1MXQVWZ1KP/XE9zzVgjenuu4bvaPfQ1G
+YMl5q6pxy4AWeBnMiOzDGiZ7uoa2Hx79aUg9HWR63lygZcqGaioPm2td57wTiwXf
+zqJiFSFL0zLqUwUVV/SkwWuVFd1tApWcz5Fj0JJKcP/OTj3i6ZBbCunwsWvab4Dq
+9IO9SLzXFkges35wZCbe3SWimj43l//kEsEE3gT9gCumaAifOPUUWy9OmwHrNs3Z
+s+qku8wKMP7IOFW2OjttDiTcAW8b2ioLSuIl5HFRiond9QO2CzrHKErajtbV+f/F
+L/wMrUSdvqJt7ECeMfOdK4g5szDaO7wjdg8gqFUp4Frivt81onzB7u0m3ihfqoZ1
+qNRTswRknGI49o21SHDzt1Game/SAiencqSuqlNYSDdEn+84/aLjZe9jLF4FS9hg
+jCRJT/ZAtKpAgj7/VTxdx/PaCR6t/WtHbv/fxxUGZ9nVzdN4Dw4BphganyNobHrJ
+4mLqEsrndaVTROQyuOM83TeEeR1IDopiK057CI/cxJFajj7L7OQ2SNV++JtZkA/2
+1XEhJjAff5Jw1d/ZCG+ARNR6inPHqDTZSUFh7vfhmWfbXMRqDWC6ut2t8wARAQAB
+tCBNYXRlIEZhcmthcyA8bWF0ZS5mYXJrYXNAc2NoLmh1PokCOAQTAQIAIgUCWObA
+0QIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQw6OkRgNq+pNW3w/+LZ7u
+iLmnjWcfMNUDQwmJzMt3f/SkEqEp9F/osYlVqQSFyx5mbhYLAZ0HAe1c5wed4LQ5
+H3m+dbcgXs3dp3YxMxA15fkPfbP65gy+KLR03kGstrINZb2zQtc7K6QGGzf6l7Ys
+OwHm0pku5iFR97QYf8k8/givImNqc00P4dpG2RqMV2EfIszDcevCrAOnQ+D/uww0
+3M7VQU5fB817cHTvjO7SRuAX5lJ/pAtE9kDYS2q0yNUvp60UoV3WoxDbrPNHdSYa
+MmumdjQvWsOmGChKKUjHsrWSf1wn+JKpzWf0pD4wchBeQGgWPr8eqb8yRj0fk/H/
+MAv2V7sqK3DMNnEMxdavKBD0ZWuRzlL0Bok7QWs/oDm2XVYFvrAj4Vg7GOKYyvqI
+4YtWMj36Vjb5bR7ZR6bg+sb6joOGLXoF3VZfdppbxvO+cXAsoGcZIedDEAtaASeq
+ZD53aoF8blmucpcIJZiobInsMp/oevp7nf3u6Ep0YItlsJ0JOkNi3DCS5XXqsOxY
+uo90gwOVwWsAX/O1x3vIi17M6+THB8TqqvOkB4QUCah4S01w84j97atJA5TM06XZ
+bO2/syBsfDly8piZ/vkJ8gidfBx6o6vp5A9lhukfEOwNe0t2RMUN1k5X1wduXOew
+ulkpoRHCkvxxZccI3JwAOQhaaUDQLJF6dl0Pw9c=
+=D1iS
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/docker/xenial/repogen/repodir/indeed.list b/docker/xenial/repogen/repodir/indeed.list
new file mode 100644
index 0000000..ad3fc00
--- /dev/null
+++ b/docker/xenial/repogen/repodir/indeed.list
@@ -0,0 +1,2 @@
+deb http://indeed.sch.bme.hu/apt/ /
+
diff --git a/docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb b/docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb
new file mode 100644
index 0000000000000000000000000000000000000000..37c0363ed248d754025cd7da59f7ca5136ec98ec
GIT binary patch
literal 710
zcmY$iNi0gvu;WTeP0CEn(@o0EODw8XP*5;5HL@@_u{1X}QBW{Y009VTXkcJwVxpj6
z0uln_1TG^z1Fq!!ypp2)9KDjnBE9q~!upL&Ex@`J6cV`PyEzy@fQk9-#e-f)3<TI7
z%=s+xndRoTOkEK{*2r(09yorH*;E*9c6*BFtIxC7s<U1XW_|cy!ADIpjc>78QmN}T
zv$H~*-xuzj9u=SUYSqP`dvjMi1t|YJATv2p>7e40?9%;z{|9F!AD&_HW9s+%;OqA9
z_Fww-`rqlG@TCiwe#hUPyivWlME2{s-wN?E#}#{Ir>+WUy)!$}=cmQHjQmN9*FK!w
zSyFwjvnqPh?~LlJ=gU7e=Gv>IUp}*Q{>M1GT^W@#E?p`tmvmU)_}B4LvAxSIyY%3a
zKkt-e?^s?i`7E-i+slg)<U<sEy_R9GN>c!X1_MJ%Vo4%6=qjqfp+YG1jm#ji0Sdjp
z=2a0<3=AyKu5EE+Vo+ohV_;w?(SN%5f%<=j!?6tF+<Rnd8K)jFbct$S6<xjj^!kX`
ze6H7j9Fvo8DJ^{xyteXfy8l~&cF7>+2-()9_E*CHgod#uYh6=}=(maMa!7r`HTzPS
z;px9|)Alw>$r{)!by+N^vL#n_huF@I&BAWe`^@iaZBZ_jNV<_HyJlH${L74(yDwx{
zI9!PQ5Pxt{g~A^}6@FIB^35AG?PrF@-Qu{+(R3p4$zDtLB`0p0EjyqgJ?)WYPSwq<
zsW0+wc&s+t-4XWd<%@63EwYK1PBvf9)>^~Bz@Tt!{kfvU{B;bB_Zb@k7#L(u@0hdk
ONcwLkP=K;TMgaihM-rC+

literal 0
HcmV?d00001

diff --git a/docker/xenial/repogen/usr/local/bin/generate-apt-metadata b/docker/xenial/repogen/usr/local/bin/generate-apt-metadata
new file mode 100644
index 0000000..b84d544
--- /dev/null
+++ b/docker/xenial/repogen/usr/local/bin/generate-apt-metadata
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+REPO_DIR=/build/
+PERMISSIONS=0444
+
+if [ ! -d $REPO_DIR ]
+then
+  echo "ERROR: ${REPO_DIR} doesn't exist."
+  exit 1
+fi
+
+uid=`stat -c '%u' $REPO_DIR`
+gid=`stat -c '%g' $REPO_DIR`
+
+cd $REPO_DIR
+apt-ftparchive packages $REPO_DIR > Packages
+sed -i "s|^Filename: ${REPO_DIR}|Filename: |" Packages
+apt-ftparchive release  $REPO_DIR > Release
+
+chown $uid:$gid Packages Release
+chmod $PERMISSIONS Packages Release
+
+if [ ! -d ~/.gnupg/ ]
+then
+  echo "ERROR: GPG config is missing."
+  exit 1
+fi
+
+gpg --armor --detach-sign --digest-algo SHA256 --sign --no-random-seed-file --output Release.gpg Release
+chown $uid:$gid Release.gpg
+chmod $PERMISSIONS Release.gpg
+
-- 
GitLab