From c6715eca10fe27810055e409fb41b39cb7dfc27f Mon Sep 17 00:00:00 2001 From: leafee98 Date: Tue, 1 Nov 2022 03:28:08 -0400 Subject: [PATCH] refactor filebrowser build script --- filebrowser/filebrowser.sh | 74 ++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/filebrowser/filebrowser.sh b/filebrowser/filebrowser.sh index bcc3330..8ecd5ab 100644 --- a/filebrowser/filebrowser.sh +++ b/filebrowser/filebrowser.sh @@ -2,17 +2,18 @@ version="${1:?You need to specific a version, eg: v1.22.2}" version_num="${version##v}" +package_name=filebrowser-${version_num}.tar.gz + # must occur dirs material_dir="./materials" # optional dirs (created during build) -download_dir="./downloads" -package_dir="./packages" -extract_dir="./extracted" -rootfs="./rootfs" +download_dir="./var/downloads" +extract_dir="./var/extracted" +rootfs="./var/rootfs" -package_name=filebrowser-${version_num}.tar.gz +package_dir="./packages" function copy_file { @@ -29,35 +30,42 @@ function copy_file { 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 +function download { + # 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} +function extract { + rm -rf ${extract_dir} + mkdir -p ${extract_dir} + tar -xf ${download_dir}/${package_name} -C ${extract_dir} +} -# 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/ +function build_rootfs { + rm -rf ${rootfs} -copy_file ${material_dir}/filebrowser.service ${rootfs}/usr/lib/systemd/system/filebrowser.service + copy_file ${extract_dir}/filebrowser ${rootfs}/usr/bin/filebrowser -# debian packages meta file -mkdir -p $rootfs/DEBIAN -sed "s/+++VERSION+++/${version_num}/" > $rootfs/DEBIAN/control << EOF + 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 +} + + +function package_meta { + # debian packages meta file + mkdir -p $rootfs/DEBIAN + sed "s/+++VERSION+++/${version_num}/" > $rootfs/DEBIAN/control << EOF Package: filebrowser Version: +++VERSION+++ Priority: optional @@ -66,5 +74,17 @@ Maintainer: leafee98 Description: Web File Browser EOF -mkdir -p $package_dir -dpkg-deb --build --root-owner-group $rootfs $package_dir/filebrowser-${version}.deb +} + + +function main { + download + extract + build_rootfs + package_meta + + mkdir -p $package_dir + dpkg-deb --build --root-owner-group $rootfs $package_dir/filebrowser-${version}.deb +} + +main "$@"