Qortal UI - Main Code Repository A User Interface for the Qortal Blockchain Project. Truly decentralized web hosting, application hosting, communications, data storage, and full infrastructure for the future global decentralized digital world.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.3 KiB

3 years ago
#!/usr/bin/env bash
declare -a YARN_PACKAGE_DEPS=("qortal-ui-core" "qortal-ui-plugins" "qortal-ui-crypto")
YARN_LINK_DIR="${HOME}/.config/yarn/link"
SHOW_HELP=0
FORCE_LINK=0
YARN_WATCH=0
RUN_SERVER=0
RUN_ELECTRON=0
while [ -n "$*" ]; do
case $1 in
-h)
# Show help
SHOW_HELP=1
;;
-f)
# Force relink and reinstall dependencies
FORCE_LINK=1
;;
-w)
# Use "yarn watch" instead of "yarn build", to enable hot swapping
YARN_WATCH=1
;;
-s)
# Run server after building
RUN_SERVER=1
;;
-e)
# Run electron after building
RUN_ELECTRON=1
;;
esac
shift
done
if [ "${SHOW_HELP}" -eq 1 ]; then
echo
echo "Usage:"
echo "build.sh [-h] [-f] [-s] [-e]"
echo
echo "-h: show help"
echo "-f: force relink and reinstall dependencies"
echo "-w: use 'yarn watch' instead of 'yarn build', to enable hot swapping"
echo "-s: run UI server after completing the build"
echo "-e: run electron server after completing the build"
echo
exit
fi
echo "Checking dependencies..."
for PACKAGE in "${YARN_PACKAGE_DEPS[@]}"; do
if [ "${FORCE_LINK}" -eq 1 ]; then
echo "Unlinking ${PACKAGE}..."
yarn --cwd "${PACKAGE}" unlink "${PACKAGE}"
yarn --cwd "${PACKAGE}" unlink
fi
if [ ! -d "${YARN_LINK_DIR}/${PACKAGE}" ]; then
echo "Installing and linking ${PACKAGE}..."
yarn --cwd "${PACKAGE}" install
yarn --cwd "${PACKAGE}" link
yarn link "${PACKAGE}"
3 years ago
else
echo "${PACKAGE} is already linked."
fi
done
WATCH_PID=$(cat "watch.pid" || echo "")
if [ ! -z "${WATCH_PID}" ]; then
echo "Stopping existing watch process..."
kill "${WATCH_PID}"
rm -f "watch.pid"
fi
if [ "${YARN_WATCH}" -eq 1 ]; then
echo "Building qortal-ui in watch mode..."
yarn run watch &
3 years ago
echo "$!" > "watch.pid";
else
yarn run build
3 years ago
fi
if [ "${RUN_SERVER}" -eq 1 ]; then
echo "Running UI server..."
trap : INT
yarn run server
3 years ago
elif [ "${RUN_ELECTRON}" -eq 1 ]; then
echo "Starting electron..."
trap : INT
yarn run start-electron
3 years ago
fi
WATCH_PID=$(cat "watch.pid" || echo "")
if [ ! -z "${WATCH_PID}" ]; then
echo "Stopping watch process..."
kill "${WATCH_PID}"
rm -f "watch.pid"
fi
# Catch-all to kill any remaining processes
pkill -P $$