#!/bin/bash

# Demo script for pb

demoprint () {
echo "$1"
read -n 1 -s -r -p ""
echo "\$ $2"
$2
echo ""
}

demoprint "Print SVN info" "git svn info"
demoprint "Get the current version of project-builder" "rpm -q project-builder"
demoprint "Check with pb command itself" "pb --version"
demoprint "Online help for pb" "pb"

# Start local build
demoprint "Build new packages locally and install them" "pb -p pb sbx2pkg2ins"
demoprint "Get the current version of project-builder" "rpm -q project-builder"
demoprint "Check with pb command itself" "pb --version"
demoprint "Look at local files generated" "ls -altr /home/bruno/svn-git/pb/pbdelivery/"
lastupstream=`ls -at /home/bruno/svn-git/pb/pbdelivery/project-builder-0*[0-9]*.tar.gz | tail -1`
demoprint "Content of the upstream tar file" "tar tvfz $lastupstream"
lastpbconf=`ls -at /home/bruno/svn-git/pb/pbdelivery/project-builder-0*[0-9]*.pbconf.tar.gz | tail -1`
demoprint "Content of the pbconf tar file" "tar tvfz $lastpbconf"

# pb on pbgetparam - dir removed !!!

demoprint "List of Docker images available for pb" "docker images"

### FEDORA ###
demoprint "Build pb for another distribution" "pb -p pb -m fedora-26-x86_64 -T docker sbx2ve"
demoprint "Look at what has been generated" "ls -altr /var/ftp/pub/pb/test/fedora/26/x86_64/"

mkdir /tmp/$$
cd /tmp/$$
cat > /tmp/$$/Dockerfile << EOF
FROM pb:fedora-26-x86_64
RUN wget ftp://172.17.0.1/pub/pb/test/fedora/26/x86_64/pb-test.repo -O /etc/yum.repos.d/pb-test.repo
RUN perl -pi -e 's|ftp.project-builder.org|172.17.0.1/pub/pb|; s|gpgcheck=1|gpgcheck=0|' /etc/yum.repos.d/pb-test.repo
RUN dnf install -y project-builder
RUN pb --version
EOF
demoprint "Prepare test with the following Dockerfile" "cat /tmp/$$/Dockerfile"
docker rmi pb:fedora-26-x86_64-test
demoprint "Build the test Docker image " "docker build -t pb:fedora-26-x86_64-test ."
demoprint "Test the installation of pb in Docker" "docker run pb:fedora-26-x86_64-test /usr/bin/pbdistrocheck"

### CENTOS ###
#demoprint "Build pb for another distribution" "pb -p pb -m centos-7-x86_64 -T docker sbx2ve"
#demoprint "Look at what has been generated" "ls -altr /var/ftp/pub/pb/test/centos/7/x86_64/"

cd /tmp/$$
cat > /tmp/$$/Dockerfile << EOF
FROM pb:centos-7-x86_64
RUN wget ftp://172.17.0.1/pub/pb/test/centos/7/x86_64/pb-test.repo -O /etc/yum.repos.d/pb-test.repo
RUN perl -pi -e 's|ftp.project-builder.org|172.17.0.1/pub/pb|; s|gpgcheck=1|gpgcheck=0|' /etc/yum.repos.d/pb-test.repo
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y project-builder
RUN pb --version
EOF
#demoprint "Prepare test with the following Dockerfile" "cat /tmp/$$/Dockerfile"
#docker rmi pb:centos-7-x86_64-test
#demoprint "Build the test Docker image " "docker build -t pb:centos-7-x86_64-test ."
#demoprint "Test the installation of pb in Docker" "docker run pb:centos-7-x86_64-test /usr/bin/pbdistrocheck"

### OPENSUSE ###
#demoprint "Build pb for another distribution" "pb -p pb -m opensuse-42.3-x86_64 -T docker sbx2ve"
#demoprint "Look at what has been generated" "ls -altr /var/ftp/pub/pb/test/opensuse/42.3/x86_64/"

cd /tmp/$$
cat > /tmp/$$/Dockerfile << EOF
FROM pb:opensuse-42.3-x86_64
RUN wget ftp://172.17.0.1/pub/pb/test/opensuse/42.3/x86_64/pb-test.repo -O /etc/yum.repos.d/pb-test.repo
RUN perl -pi -e 's|ftp.project-builder.org|172.17.0.1/pub/pb|; s|gpgcheck=1|gpgcheck=0|' /etc/yum.repos.d/pb-test.repo
RUN /usr/bin/zypper refresh
RUN /usr/bin/zypper --gpg-auto-import-keys -n install --auto-agree-with-licenses -y project-builder
RUN pb --version
EOF
#demoprint "Prepare test with the following Dockerfile" "cat /tmp/$$/Dockerfile"
docker rmi pb:opensuse-42.3-x86_64-test
#demoprint "Build the test Docker image " "docker build -t pb:opensuse-42.3-x86_64-test ."
#demoprint "Test the installation of pb in Docker" "docker run pb:opensuse-42.3-x86_64-test /usr/bin/pbdistrocheck"

### DEBIAN ###
demoprint "Build pb for a deb based distribution" "pb -p pb -m debian-9-x86_64 -T docker sbx2ve"
demoprint "Look at what has been generated" "ls -altrR /var/ftp/pub/pb/test/debian/9/"

cat > /tmp/$$/Dockerfile << EOF
FROM pb:debian-9-x86_64
RUN wget ftp://172.17.0.1/pub/pb/test/debian/9/pb-test.sources.list -O /etc/apt/sources.list.d/pb-test.sources.list
RUN perl -pi -e 's|ftp.project-builder.org|172.17.0.1/pub/pb|' /etc/apt/sources.list.d/pb-test.sources.list
RUN apt-get install -y gnupg
RUN wget -qO - ftp://172.17.0.1/pub/pb/test/debian/9/pb.pubkey | apt-key add -
RUN apt-get update
RUN apt-get install -y project-builder
RUN pb --version
EOF
demoprint "Prepare test with the following Dockerfile" "cat /tmp/$$/Dockerfile"
docker rmi pb:debian-9-x86_64-test
demoprint "Build the test Docker image " "docker build -t pb:debian-9-x86_64-test ."
demoprint "Test the installation of pb in Docker" "docker run pb:debian-9-x86_64-test /usr/bin/pbdistrocheck"
