From 547ba94909dfc7bf0b040ed1ee6b33711f5970ed Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 9 Feb 2018 01:05:52 +0900
Subject: [PATCH] Rewrite packaging script

---
 .travis.yml                             |  2 +-
 scripts/build.sh                        | 51 ------------------
 scripts/{build-docker.sh => package.sh} | 70 +++++++++++--------------
 scripts/scripts.pri                     |  3 +-
 4 files changed, 34 insertions(+), 92 deletions(-)
 delete mode 100644 scripts/build.sh
 rename scripts/{build-docker.sh => package.sh} (50%)

diff --git a/.travis.yml b/.travis.yml
index e2d9723..36f0ca6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,5 +10,5 @@ branches:
 
 script:
   - mntdir='/mnt/ocs-manager'
-  - docker run --rm -v $(pwd):${mntdir} ubuntu:14.04 /bin/bash -c "sh ${mntdir}/scripts/build-docker.sh appimage"
+  - docker run --rm -v $(pwd):${mntdir} ubuntu:14.04 /bin/bash -c "sh ${mntdir}/scripts/package.sh ci_appimage"
   - cat transfer.log
diff --git a/scripts/build.sh b/scripts/build.sh
deleted file mode 100644
index 7cde6d6..0000000
--- a/scripts/build.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-PKGNAME='ocs-manager'
-
-BUILDTYPE=''
-if [ "${1}" ]; then
-    BUILDTYPE="${1}"
-fi
-
-PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
-
-BUILDVER="$(cd "${PROJDIR}" && git describe --always)"
-
-BUILDDIR="${PROJDIR}/build_${PKGNAME}_${BUILDVER}_${BUILDTYPE}"
-
-SRCARCHIVE="${BUILDDIR}/${PKGNAME}.tar.gz"
-
-export_srcarchive() {
-    filepath="${1}"
-    $(cd "${PROJDIR}" && git archive --prefix="${PKGNAME}/" --output="${filepath}" HEAD)
-}
-
-build_appimage() {
-    cd "${PROJDIR}"
-    mkdir -p "${BUILDDIR}"
-    export_srcarchive "${SRCARCHIVE}"
-
-    tar -xzf "${SRCARCHIVE}" -C "${BUILDDIR}"
-    cp "${PROJDIR}/pkg/appimage/appimage.sh" "${BUILDDIR}/${PKGNAME}"
-    cd "${BUILDDIR}/${PKGNAME}"
-    sh appimage.sh
-}
-
-build_snap() {
-    echo 'Not implemented yet'
-}
-
-build_flatpak() {
-    echo 'Not implemented yet'
-}
-
-if [ "${BUILDTYPE}" = 'appimage' ]; then
-    build_appimage
-elif [ "${BUILDTYPE}" = 'snap' ]; then
-    build_snap
-elif [ "${BUILDTYPE}" = 'flatpak' ]; then
-    build_flatpak
-else
-    echo "sh $(basename "${0}") [appimage|snap|flatpak]"
-    exit 1
-fi
diff --git a/scripts/build-docker.sh b/scripts/package.sh
similarity index 50%
rename from scripts/build-docker.sh
rename to scripts/package.sh
index 4e0c39a..c61261c 100644
--- a/scripts/build-docker.sh
+++ b/scripts/package.sh
@@ -2,32 +2,15 @@
 
 PKGNAME='ocs-manager'
 
-PKGUSER='pkgbuilder'
+USER='pkgbuilder'
 
-BUILDTYPE=''
-if [ "${1}" ]; then
-    BUILDTYPE="${1}"
-fi
+SCRIPT="${0}"
 
 PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
 
-BUILDSCRIPT="${PROJDIR}/scripts/build.sh"
-
-TRANSFERLOG="${PROJDIR}/transfer.log"
-
-transfer_file() {
-    filepath="${1}"
-    if [ -f "${filepath}" ]; then
-        filename="$(basename "${filepath}")"
-        echo "Uploading ${filename}" >> "${TRANSFERLOG}"
-        curl -fsSL -T "${filepath}" "https://transfer.sh/${filename}" >> "${TRANSFERLOG}"
-        echo '' >> "${TRANSFERLOG}"
-    fi
-}
-
-build_appimage() {
-    # docker-image: ubuntu:14.04
+BUILDDIR="${PROJDIR}/build_${PKGNAME}"
 
+ci_appimage() { # docker-image: ubuntu:14.04
     apt update -qq
     apt -y install software-properties-common
     apt -y install curl git
@@ -46,29 +29,40 @@ build_appimage() {
     curl -fsSL https://cmake.org/files/v3.10/cmake-3.10.0-rc5-Linux-x86_64.tar.gz | tar -xz --strip-components=1 -C /
     apt -y install libssl-dev libcurl3 libcurl3-gnutls libcurl4-gnutls-dev libxpm-dev
 
-    useradd -m ${PKGUSER}
-    chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}"
+    useradd -m ${USER}
+    chown -R ${USER} "${PROJDIR}"
+
+    su -c "export HOME=/home/${USER} && source /opt/qt59/bin/qt59-env.sh && sh "${SCRIPT}" build_appimage" ${USER}
 
-    su -c "export HOME=/home/${PKGUSER} && source /opt/qt59/bin/qt59-env.sh && sh "${BUILDSCRIPT}" ${BUILDTYPE}" ${PKGUSER}
+    transfer_file "$(find "${BUILDDIR}" -type f -name "${PKGNAME}*.AppImage")"
+}
 
-    transfer_file "$(find "${PROJDIR}/build_"*${BUILDTYPE} -type f -name "${PKGNAME}*.AppImage")"
+build_appimage() {
+    rm -rf "${BUILDDIR}"
+    mkdir -p "${BUILDDIR}"
+    export_srcarchive "${BUILDDIR}/${PKGNAME}.tar.gz"
+    tar -xzf "${BUILDDIR}/${PKGNAME}.tar.gz" -C "${BUILDDIR}"
+    cp "${PROJDIR}/pkg/appimage/appimage.sh" "${BUILDDIR}/${PKGNAME}"
+    cd "${BUILDDIR}/${PKGNAME}"
+    sh appimage.sh
 }
 
-build_snap() {
-    echo 'Not implemented yet'
+export_srcarchive() {
+    if [ "${1}" ]; then
+        $(cd "${PROJDIR}" && git archive --prefix="${PKGNAME}/" --output="${1}" HEAD)
+    fi
 }
 
-build_flatpak() {
-    echo 'Not implemented yet'
+transfer_file() {
+    if [ -f "${1}" ]; then
+        filename="$(basename "${1}")"
+        transferlog="${PROJDIR}/transfer.log"
+        echo "Uploading ${filename}" >> "${transferlog}"
+        curl -fsSL -T "${1}" "https://transfer.sh/${filename}" >> "${transferlog}"
+        echo '' >> "${transferlog}"
+    fi
 }
 
-if [ "${BUILDTYPE}" = 'appimage' ]; then
-    build_appimage
-elif [ "${BUILDTYPE}" = 'snap' ]; then
-    build_snap
-elif [ "${BUILDTYPE}" = 'flatpak' ]; then
-    build_flatpak
-else
-    echo "sh $(basename "${0}") [appimage|snap|flatpak]"
-    exit 1
+if [ "${1}" ]; then
+    ${1}
 fi
diff --git a/scripts/scripts.pri b/scripts/scripts.pri
index cffa148..de6b1aa 100644
--- a/scripts/scripts.pri
+++ b/scripts/scripts.pri
@@ -1,4 +1,3 @@
 DISTFILES += \
-    $${PWD}/build-docker.sh \
-    $${PWD}/build.sh \
+    $${PWD}/package.sh \
     $${PWD}/prepare.sh
-- 
GitLab