From 7108707913963db1e42200ae184d2c6289480c0b Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Tue, 7 Mar 2017 07:35:11 +0900
Subject: [PATCH] Add build-docker.sh

---
 scripts/build-docker.sh | 105 ++++++++++++++++++++++++++++++++++++++++
 scripts/scripts.pri     |   1 +
 2 files changed, 106 insertions(+)
 create mode 100644 scripts/build-docker.sh

diff --git a/scripts/build-docker.sh b/scripts/build-docker.sh
new file mode 100644
index 0000000..bffee55
--- /dev/null
+++ b/scripts/build-docker.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+################################################################################
+# This is wrapper script for build.sh use from inside docker container
+################################################################################
+
+PKGUSER='pkgbuilder'
+
+BUILDTYPE=''
+if [ "${1}" ]; then
+    BUILDTYPE="${1}"
+fi
+
+PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
+
+BUILDSCRIPT="${PROJDIR}/scripts/build.sh"
+
+build_ubuntu() {
+    # docker-image: ubuntu:14.04
+    apt update -qq
+    apt -y install git curl
+    apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev
+    apt -y install devscripts debhelper fakeroot
+
+    useradd -m ${PKGUSER}
+    export HOME="/home/${PKGUSER}"
+    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+
+    su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER}
+}
+
+build_fedora() {
+    # docker-image: fedora:20
+    yum -y install git curl
+    yum -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel
+    yum -y install rpm-build
+    # docker-image: fedora:22
+    #dnf -y install git curl
+    #dnf -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel
+    #dnf -y install rpm-build
+
+    useradd -m ${PKGUSER}
+    export HOME="/home/${PKGUSER}"
+    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+
+    su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER}
+}
+
+build_archlinux() {
+    # docker-image: base/archlinux:latest
+    pacman -Syu --noconfirm
+    pacman -S --noconfirm git curl
+    pacman -S --noconfirm base-devel qt5-base qt5-svg qt5-declarative qt5-quickcontrols
+
+    useradd -m ${PKGUSER}
+    export HOME="/home/${PKGUSER}"
+    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+
+    su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER}
+}
+
+build_snap() {
+    # docker-image: ubuntu:16.04
+    apt update -qq
+    apt -y install git curl
+    apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev
+    apt -y install snapcraft
+
+    useradd -m ${PKGUSER}
+    export HOME="/home/${PKGUSER}"
+    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+
+    su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER}
+}
+
+build_appimage() {
+    # docker-image: ubuntu:14.04
+    apt update -qq
+    apt -y install git curl
+    apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev
+    apt -y install fuse zsync desktop-file-utils
+
+    modprobe fuse
+
+    useradd -m ${PKGUSER}
+    export HOME="/home/${PKGUSER}"
+    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+
+    su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER}
+}
+
+if [ "${BUILDTYPE}" = 'ubuntu' ]; then
+    build_ubuntu
+elif [ "${BUILDTYPE}" = 'fedora' ]; then
+    build_fedora
+elif [ "${BUILDTYPE}" = 'archlinux' ]; then
+    build_archlinux
+elif [ "${BUILDTYPE}" = 'snap' ]; then
+    build_snap
+elif [ "${BUILDTYPE}" = 'appimage' ]; then
+    build_appimage
+else
+    echo "sh $(basename "${0}") [ubuntu|fedora|archlinux|snap|appimage]"
+    exit 1
+fi
diff --git a/scripts/scripts.pri b/scripts/scripts.pri
index d8d9163..a4a1c60 100644
--- a/scripts/scripts.pri
+++ b/scripts/scripts.pri
@@ -1,3 +1,4 @@
 DISTFILES += \
+    $${PWD}/build-docker.sh \
     $${PWD}/build.sh \
     $${PWD}/import.sh
-- 
GitLab