Skip to content
Snippets Groups Projects
package 3.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • akiraohgaki's avatar
    akiraohgaki committed
    #!/bin/bash
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    PKGNAME='ocs-url'
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    PKGUSER='pkgbuilder'
    
    akiraohgaki's avatar
    akiraohgaki committed
    PKGSCRIPT="${0}"
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    BUILDDIR="${PROJDIR}/build_${PKGNAME}"
    
    akiraohgaki's avatar
    akiraohgaki committed
    ubuntu_deb() { # docker-image: ubuntu:14.04
    
    akiraohgaki's avatar
    akiraohgaki committed
        install_build_deps_ubuntu_deb
        add_pkguser
        su -c "export HOME=/home/${PKGUSER} && "${PKGSCRIPT}" build_ubuntu_deb" ${PKGUSER}
        transfer_file "$(find "${BUILDDIR}" -type f -name "${PKGNAME}*.deb")"
    }
    
    install_build_deps_ubuntu_deb() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        apt update -qq
        apt -y install curl git
        apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev
        apt -y install devscripts debhelper fakeroot
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    build_ubuntu_deb() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        rm -rf "${BUILDDIR}"
    
    akiraohgaki's avatar
    akiraohgaki committed
        mkdir -p "${BUILDDIR}"
        export_srcarchive "${BUILDDIR}/${PKGNAME}.tar.gz"
        tar -xzf "${BUILDDIR}/${PKGNAME}.tar.gz" -C "${BUILDDIR}"
        cp -r "${PROJDIR}/pkg/ubuntu/debian" "${BUILDDIR}/${PKGNAME}"
        cd "${BUILDDIR}/${PKGNAME}"
        debuild -uc -us -b
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    fedora_rpm() { # docker-image: fedora:20
    
    akiraohgaki's avatar
    akiraohgaki committed
        install_build_deps_fedora_rpm
        add_pkguser
        su -c "export HOME=/home/${PKGUSER} && "${PKGSCRIPT}" build_fedora_rpm" ${PKGUSER}
        transfer_file "$(find "${BUILDDIR}" -type f -name "${PKGNAME}*.rpm")"
    }
    
    install_build_deps_fedora_rpm() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        yum -y install curl git
        yum -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel
        yum -y install rpm-build
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    build_fedora_rpm() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        rm -rf "${BUILDDIR}"
    
    akiraohgaki's avatar
    akiraohgaki committed
        mkdir -p "${BUILDDIR}"
        mkdir "${BUILDDIR}/SOURCES"
        mkdir "${BUILDDIR}/SPECS"
        export_srcarchive "${BUILDDIR}/SOURCES/${PKGNAME}.tar.gz"
        cp "${PROJDIR}/pkg/fedora/${PKGNAME}.spec" "${BUILDDIR}/SPECS"
        rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/${PKGNAME}.spec"
    }
    
    akiraohgaki's avatar
    akiraohgaki committed
    opensuse_rpm() { # docker-image: opensuse:42.1
    
    akiraohgaki's avatar
    akiraohgaki committed
        install_build_deps_opensuse_rpm
        add_pkguser
        su -c "export HOME=/home/${PKGUSER} && "${PKGSCRIPT}" build_opensuse_rpm" ${PKGUSER}
        transfer_file "$(find "${BUILDDIR}" -type f -name "${PKGNAME}*.rpm")"
    }
    
    install_build_deps_opensuse_rpm() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        zypper --non-interactive refresh
        zypper --non-interactive install curl git
        zypper --non-interactive install make automake gcc gcc-c++ libtool libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qtdeclarative-devel
        zypper --non-interactive install rpm-build
    
    akiraohgaki's avatar
    akiraohgaki committed
    }
    
    build_opensuse_rpm() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        rm -rf "${BUILDDIR}"
    
    akiraohgaki's avatar
    akiraohgaki committed
        mkdir -p "${BUILDDIR}"
        mkdir "${BUILDDIR}/SOURCES"
        mkdir "${BUILDDIR}/SPECS"
        export_srcarchive "${BUILDDIR}/SOURCES/${PKGNAME}.tar.gz"
        cp "${PROJDIR}/pkg/opensuse/${PKGNAME}.spec" "${BUILDDIR}/SPECS"
        rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/${PKGNAME}.spec"
    
    akiraohgaki's avatar
    akiraohgaki committed
    archlinux_pkg() { # docker-image: base/archlinux:latest
    
    akiraohgaki's avatar
    akiraohgaki committed
        install_build_deps_archlinux_pkg
        add_pkguser
        su -c "export HOME=/home/${PKGUSER} && "${PKGSCRIPT}" build_archlinux_pkg" ${PKGUSER}
        transfer_file "$(find "${BUILDDIR}" -type f -name "${PKGNAME}*.pkg.tar.xz")"
    }
    
    install_build_deps_archlinux_pkg() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        pacman -Syu --noconfirm
        pacman -S --noconfirm curl git
        pacman -S --noconfirm base-devel qt5-base qt5-svg qt5-declarative qt5-quickcontrols
    
    akiraohgaki's avatar
    akiraohgaki committed
        pacman -S --noconfirm pacman-contrib
    
    akiraohgaki's avatar
    akiraohgaki committed
    build_archlinux_pkg() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        rm -rf "${BUILDDIR}"
    
    akiraohgaki's avatar
    akiraohgaki committed
        mkdir -p "${BUILDDIR}"
        export_srcarchive "${BUILDDIR}/${PKGNAME}.tar.gz"
        cp "${PROJDIR}/pkg/archlinux/PKGBUILD" "${BUILDDIR}"
        cd "${BUILDDIR}"
        updpkgsums
        makepkg -s
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    add_pkguser() {
        useradd -m ${PKGUSER}
        chown -R ${PKGUSER} "${PROJDIR}"
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    export_srcarchive() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        if [ "${1}" ]; then
    
    akiraohgaki's avatar
    akiraohgaki committed
            $(cd "${PROJDIR}" && git archive --prefix="${PKGNAME}/" --output="${1}" HEAD)
        fi
    }
    
    transfer_file() {
    
    akiraohgaki's avatar
    akiraohgaki committed
        if [ -f "${1}" ]; then
    
    akiraohgaki's avatar
    akiraohgaki committed
            filename="$(basename "${1}")"
            transferlog="${PROJDIR}/transfer.log"
            echo "Uploading ${filename}" >> "${transferlog}"
            curl -fsSL -T "${1}" "https://transfer.sh/${filename}" >> "${transferlog}"
            echo '' >> "${transferlog}"
        fi
    }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    if [ "${1}" ]; then
    
    akiraohgaki's avatar
    akiraohgaki committed
        ${1}
    fi