multi-scrobbler/flatpak/setup.sh
FoxxMD 040de4b000 docs(flatpak): Implement bash setup script and move flatpak instructions to docsite
* setup.sh takes care of building generated sources for project/docsite and building flatpak app
* Modify flatpak manifest to include two generated sources files and build docsite files
* Update flatpak docs with script usage and generated sources changes, move to docusauraus doc site
2024-07-16 11:34:15 -04:00

101 lines
2.5 KiB
Bash
Executable file

#!/bin/bash
OVERWRITE="0"
CONFIRM="1"
# https://stackoverflow.com/a/14203146
POSITIONAL_ARGS=()
while [[ $# -gt 0 ]]; do
case $1 in
-b|--buildpath)
BUILDPATH="$2"
shift # past argument
shift # past value
;;
-o|--overwrite)
OVERWRITE="1"
shift # past argument
;;
-y|--yes)
CONFIRM="0"
shift # past argument
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done
set -- "${POSITIONAL_ARGS[@]}"
if [ ! -f "./io.github.foxxmd.multiscrobbler.yml" ]; then
echo "Run this script inside the 'flatpak' directory!"
exit 1
fi
if [ -z "${BUILDPATH}" ]; then
printf "\nNo build path set, using ./build\n"
BUILDPATH="${PWD##*/}/build"
fi
printf '\nBuild Path: %s' "${BUILDPATH}"
if [ "$OVERWRITE" = "1" ]; then echo 'Overwrite Sources: True'; else printf 'Overwrite Sources: False\n'; fi
if [ "$CONFIRM" = "1" ]; then
read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
fi
printf '\n'
cd ../
if [ -d ./node_modules ]; then
echo 'Project node_modules exists, deleting...'
rm -r node_modules
fi
if [ -d ./docsite/node_modules ]; then
echo 'Docsite node_modules exists, deleting...'
rm -r docsite/node_modules
fi
GENERATE_SOURCES="1"
if [ -f "flatpak/generated-sources.0.json" ] || [ -f "flatpak/generated-sources.1.json" ]; then
if [ "$OVERWRITE" = "0" ]; then
echo 'Generated sources exist, will not overwrite.';
GENERATE_SOURCES=0
else
echo 'Deleting existing sources...';
rm -f flatpak/generated-sources.0.json
rm -f flatpak/generated-sources.1.json
fi
fi
if [ "$GENERATE_SOURCES" = "1" ]; then
printf '\nGenerating project sources...\n'
rm -f generated-sources.json
flatpak-node-generator npm package-lock.json
mv generated-sources.json flatpak/generated-sources.0.json
printf '\nGenerating docsite sources...\n'
flatpak-node-generator npm docsite/package-lock.json
mv generated-sources.json flatpak/generated-sources.1.json
fi
cd flatpak || exit
mkdir -p "$BUILDPATH"
printf '\nBuilding flatpak app...\n'
set -x
flatpak-builder --repo="$BUILDPATH"/repo --state-dir="$BUILDPATH"/state "$BUILDPATH"/build io.github.foxxmd.multiscrobbler.yml --force-clean --install --user
# https://stackoverflow.com/questions/2853803/how-to-echo-shell-commands-as-they-are-executed#comment135696350_13718771
{ set +x; } &> /dev/null
echo 'Done!'