Skip to content

Instantly share code, notes, and snippets.

@narajaon
Last active February 6, 2020 22:27
Show Gist options
  • Save narajaon/c7ae00301318f3b609e7babade3fdd79 to your computer and use it in GitHub Desktop.
Save narajaon/c7ae00301318f3b609e7babade3fdd79 to your computer and use it in GitHub Desktop.
build.sh
#!/usr/local/bin/bash
# /!\ make sure to use the latest version of bash
if [ -z "$1" ]; then
echo "usage: ./build <dir name>"
exit 1
fi
declare ROOT_DIR="/Users/fabienrajao/Documents/freelance/zephyr"
declare PACK_DIR="$ROOT_DIR/packages"
declare -a commands=("next" "relay")
declare -A p_map
launch_build() {
[ ! -d "$PACK_DIR/$1" ] && echo "build.sh: invalid directory"
cd $PACK_DIR/$1
yarn --silent build:watch:notify &
p_map[$1]=$!
cd - > /dev/null
}
for dir in "$@"; do
[ ! -d "$PACK_DIR/$dir" ] && echo "build.sh: invalid directory $dir"
launch_build $dir
done
echo -e "> Enter packages \e[92m[${!p_map[@]}]\e[0m or scripts \e[92m[${commands[@]}]\e[0m to relaunch"
declare next_id
while read dir_name; do
if [[ $dir_name && ${p_map[$dir_name]} ]]; then
cur_pid=${p_map[$dir_name]}
kill $cur_pid &&
echo -e "$dir_name:\e[92m launching build\e[0m 🚀" &&
launch_build $dir_name;
elif [ "$dir_name" == "next" ]; then
if [ -n "${next_id-}" ]; then
kill $next_id
lsof -i :3000 -t | xargs kill
fi
cd $PACK_DIR/eurosport-toolkit-server
yarn next:dev &
next_id=$!
cd - > /dev/null
elif [ "$dir_name" == "relay" ]; then
cd $PACK_DIR/core
yarn relay &
cd - > /dev/null
fi
echo -e "> Enter packages \e[92m[${!p_map[@]}]\e[0m or scripts \e[92m[${commands[@]}]\e[0m to relaunch"
done
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment