Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 3 | set -xe |
| 4 | set -o pipefail |
| 5 | stamp=$(date "+%Y_%m_%d_%H_%M_%S") |
Richard Felkl | c76c475 | 2018-01-11 15:42:26 +0100 | [diff] [blame] | 6 | LOGDIR=/var/log/debmirror |
| 7 | DEBMLOG=${LOGDIR}/${stamp}.log |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 8 | MIRRORDIR=/srv/aptly/public |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 9 | MCP_VERSION=${MCP_VERSION:-stable} |
| 10 | MIRROR_HOST=${MIRROR_HOST:-"mirror.mirantis.com"} |
| 11 | method=${CLONE_METHOD:-"rsync"} |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 12 | |
Richard Felkl | c76c475 | 2018-01-11 15:42:26 +0100 | [diff] [blame] | 13 | mkdir -p ${LOGDIR} |
| 14 | mkdir -p ${MIRRORDIR} |
| 15 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 16 | if [[ ${method} == "rsync" ]] ; then |
| 17 | m_root=":mirror/$MCP_VERSION/ubuntu" |
| 18 | elif [[ ${method} == "http" ]] ; then |
| 19 | m_root="$MCP_VERSION/ubuntu" |
| 20 | else |
| 21 | echo "LOG: Error: unsupported clone method!" 2>&1 | tee -a $DEBMLOG |
| 22 | exit 1 |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 23 | fi |
| 24 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 25 | ### Script body ### |
| 26 | echo "LOG: Start: $(date '+%Y_%m_%d_%H_%M_%S')" 2>&1 | tee -a $DEBMLOG |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 27 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 28 | mkdir -p $(dirname ${DEBMLOG}) ${MIRRORDIR} |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 29 | # Ubuntu General |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 30 | echo "LOG: Ubuntu Mirror" 2>&1 | tee -a $DEBMLOG |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 31 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 32 | debmirror --verbose --method=${method} --progress \ |
| 33 | --host=${MIRROR_HOST} \ |
| 34 | --arch=amd64 \ |
| 35 | --dist=xenial,xenial-security,xenial-updates \ |
| 36 | --root=${m_root} \ |
| 37 | --section=main,multiverse,restricted,universe \ |
| 38 | --rsync-extra=none \ |
| 39 | --nosource \ |
| 40 | --no-check-gpg \ |
| 41 | --exclude-deb-section=games \ |
Richard Felkl | dd3becd | 2018-01-20 20:52:55 +0000 | [diff] [blame] | 42 | --exclude-deb-section=gnome \ |
| 43 | --exclude-deb-section=Xfce \ |
| 44 | --exclude-deb-section=sound \ |
| 45 | --exclude-deb-section=doc \ |
| 46 | --exclude-deb-section=electronics \ |
| 47 | --exclude-deb-section=graphics \ |
| 48 | --exclude-deb-section=hamradio \ |
| 49 | --exclude-deb-section=localization \ |
| 50 | --exclude-deb-section=kde \ |
| 51 | --exclude-deb-section=video \ |
azvyagintsev | 5b7f49e | 2018-01-12 18:07:47 +0200 | [diff] [blame] | 52 | --exclude='/android*' \ |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 53 | --exclude='/firefox*' \ |
| 54 | --exclude='/chromium-browser*' \ |
Richard Felkl | dd3becd | 2018-01-20 20:52:55 +0000 | [diff] [blame] | 55 | --exclude='/ceph*' \ |
| 56 | --exclude='/*-wallpapers*' \ |
| 57 | --exclude='/language-pack-(?!en)' \ |
azvyagintsev | d1129f8 | 2018-01-12 16:31:33 +0200 | [diff] [blame] | 58 | --include='/main(.*)manpages' \ |
azvyagintsev | 5b7f49e | 2018-01-12 18:07:47 +0200 | [diff] [blame] | 59 | --include='/main(.*)python-(.*)doc' \ |
Richard Felkl | aff02ab | 2018-01-30 19:39:12 +0100 | [diff] [blame^] | 60 | --include='/universe(.*)python-(.*)doc' \ |
azvyagintsev | 5b7f49e | 2018-01-12 18:07:47 +0200 | [diff] [blame] | 61 | --include='/main(.*)python-(.*)network' \ |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 62 | $MIRRORDIR/ubuntu 2>&1 | tee -a $DEBMLOG |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 63 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 64 | echo "LOG: Fixing ownership" 2>&1 | tee -a $DEBMLOG |
| 65 | find "${MIRRORDIR}" -type d -o -type f -exec chown aptly:aptly '{}' \; 2>&1 | tee -a $DEBMLOG |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 66 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 67 | echo "LOG: Fixing permissions " 2>&1 | tee -a $DEBMLOG |
| 68 | find "${MIRRORDIR}" -type d -o -type f -exec chmod u+rw,g+r,o+r-w {} \; 2>&1 | tee -a $DEBMLOG |
Richard Felkl | 7ae81d6 | 2018-01-04 22:29:03 +0100 | [diff] [blame] | 69 | |
azvyagintsev | f9f0d14 | 2018-01-10 15:27:17 +0200 | [diff] [blame] | 70 | echo "LOG: Mirror size " 2>&1 | tee -a $DEBMLOG |
| 71 | du -hs "${MIRRORDIR}" 2>&1 | tee -a $DEBMLOG |
| 72 | |
| 73 | echo "LOG: Finish:$(date '+%Y_%m_%d_%H_%M_%S')" 2>&1 | tee -a $DEBMLOG |
| 74 | |