#!/usr/bin/env bash version="${1:?You need to specific a version, eg: v1.22.2}" version_num="${version##v}" # must occur dirs material_dir="./materials" # optional dirs (created during build) download_dir="./downloads" package_dir="./packages" extract_dir="./extracted" rootfs="./rootfs" package_name=filebrowser-${version_num}.tar.gz function copy_file { local src="$1" local dst="$2" # if ends with a splash if [[ "$dst" == */ ]] ; then mkdir -p $dst cp --target-directory $dst $src else local dst_dir=$(dirname $dst) mkdir -p $dst_dir cp --no-target-directory $src $dst fi } # don't re-download if already downloaded if [ ! -f "${download_dir}/${package_name}" ] ; then mkdir -p ${download_dir} wget --output-document ${download_dir}/${package_name} https://github.com/filebrowser/filebrowser/releases/download/${version}/linux-amd64-filebrowser.tar.gz fi rm -rf ${extract_dir} mkdir -p ${extract_dir} tar -xf ${download_dir}/${package_name} -C ${extract_dir} # clean rootfs rm -rf ${rootfs} # move files copy_file ${extract_dir}/filebrowser ${rootfs}/usr/bin/filebrowser copy_file ${extract_dir}/CHANGELOG.md ${rootfs}/usr/share/filebrowser/ copy_file ${extract_dir}/LICENSE ${rootfs}/usr/share/filebrowser/ copy_file ${extract_dir}/README.md ${rootfs}/usr/share/filebrowser/ copy_file ${material_dir}/filebrowser.service ${rootfs}/usr/lib/systemd/system/filebrowser.service # debian packages meta file mkdir -p $rootfs/DEBIAN sed "s/+++VERSION+++/${version_num}/" > $rootfs/DEBIAN/control << EOF Package: filebrowser Version: +++VERSION+++ Priority: optional Architecture: all Maintainer: leafee98 Description: Web File Browser EOF mkdir -p $package_dir dpkg-deb --build --root-owner-group $rootfs $package_dir/filebrowser-${version}.deb