Skip to content
Snippets Groups Projects
build.sh 2.27 KiB
Newer Older
#!/bin/bash
akiraohgaki's avatar
akiraohgaki committed
PKGNAME='ocs-url'

BUILDTYPE=''
if [ "${1}" ]; then
    BUILDTYPE="${1}"
fi

akiraohgaki's avatar
akiraohgaki committed
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}"
akiraohgaki's avatar
akiraohgaki committed
    $(cd "${PROJDIR}" && git archive --prefix="${PKGNAME}/" --output="${filepath}" HEAD)
akiraohgaki's avatar
akiraohgaki committed
build_ubuntu() {
akiraohgaki's avatar
akiraohgaki committed
    cd "${PROJDIR}"
    mkdir -p "${BUILDDIR}"
    export_srcarchive "${SRCARCHIVE}"
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    tar -xzf "${SRCARCHIVE}" -C "${BUILDDIR}"
    cp -r "${PROJDIR}/pkg/ubuntu/debian" "${BUILDDIR}/${PKGNAME}"
    cd "${BUILDDIR}/${PKGNAME}"
    debuild -uc -us -b
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
build_fedora() {
akiraohgaki's avatar
akiraohgaki committed
    cd "${PROJDIR}"
    mkdir -p "${BUILDDIR}"
    export_srcarchive "${SRCARCHIVE}"

    mkdir "${BUILDDIR}/SOURCES"
    mkdir "${BUILDDIR}/SPECS"
    mv "${SRCARCHIVE}" "${BUILDDIR}/SOURCES"
    cp "${PROJDIR}/pkg/fedora/${PKGNAME}.spec" "${BUILDDIR}/SPECS"
    rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/${PKGNAME}.spec"
}
akiraohgaki's avatar
akiraohgaki committed
build_opensuse() {
    cd "${PROJDIR}"
    mkdir -p "${BUILDDIR}"
    export_srcarchive "${SRCARCHIVE}"

    mkdir "${BUILDDIR}/SOURCES"
    mkdir "${BUILDDIR}/SPECS"
    mv "${SRCARCHIVE}" "${BUILDDIR}/SOURCES"
    cp "${PROJDIR}/pkg/opensuse/${PKGNAME}.spec" "${BUILDDIR}/SPECS"
    rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/${PKGNAME}.spec"
}

akiraohgaki's avatar
akiraohgaki committed
build_archlinux() {
akiraohgaki's avatar
akiraohgaki committed
    cd "${PROJDIR}"
    mkdir -p "${BUILDDIR}"
    export_srcarchive "${SRCARCHIVE}"
akiraohgaki's avatar
akiraohgaki committed

    cp "${PROJDIR}/pkg/archlinux/PKGBUILD" "${BUILDDIR}"
    cd "${BUILDDIR}"
    updpkgsums
    makepkg -s
akiraohgaki's avatar
akiraohgaki committed
build_appimage() {
    echo 'Not implemented yet'
akiraohgaki's avatar
akiraohgaki committed
build_snap() {
akiraohgaki's avatar
akiraohgaki committed
    echo 'Not implemented yet'
}

akiraohgaki's avatar
akiraohgaki committed
build_flatpak() {
    echo 'Not implemented yet'
if [ "${BUILDTYPE}" = 'ubuntu' ]; then
akiraohgaki's avatar
akiraohgaki committed
    build_ubuntu
elif [ "${BUILDTYPE}" = 'fedora' ]; then
akiraohgaki's avatar
akiraohgaki committed
    build_fedora
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'opensuse' ]; then
    build_opensuse
elif [ "${BUILDTYPE}" = 'archlinux' ]; then
akiraohgaki's avatar
akiraohgaki committed
    build_archlinux
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'appimage' ]; then
    build_appimage
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'snap' ]; then
akiraohgaki's avatar
akiraohgaki committed
    build_snap
akiraohgaki's avatar
akiraohgaki committed
elif [ "${BUILDTYPE}" = 'flatpak' ]; then
    build_flatpak
akiraohgaki's avatar
akiraohgaki committed
    echo "sh $(basename "${0}") [ubuntu|fedora|archlinux|appimage|snap|flatpak]"
    exit 1