46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# ^ this needs to be SH instead of bash because of Alpine Linux
|
|
|
|
# Utility to use tool depending on environment (using built or dev tooling)
|
|
|
|
MY_DIR="$(cd "$(dirname "$0")"; pwd)"
|
|
cd $MY_DIR
|
|
|
|
USE_PROD=false
|
|
if [ "$NODE_ENV" = "production" ]; then
|
|
USE_PROD=true
|
|
fi
|
|
|
|
if ! $USE_PROD; then
|
|
echo "<!> Development environment detected";
|
|
echo "<!> NODE_ENV is either empty or set to development";
|
|
echo "<!> Set NODE_ENV to production to use production tools";
|
|
echo "";
|
|
fi
|
|
|
|
DEV_TOOLS_ROOT=$MY_DIR/src/tools
|
|
PROD_TOOLS_ROOT=$MY_DIR/dist/tools
|
|
TOOL_NAME="$1"
|
|
|
|
if [ "$TOOL_NAME" = "" ]; then
|
|
echo "Tool argument is empty, specify a filename (without extension) from tools directory";
|
|
if $USE_PROD; then
|
|
echo " > Tools Directory: $PROD_TOOLS_ROOT"
|
|
else
|
|
echo " > Tools Directory: $DEV_TOOLS_ROOT"
|
|
fi
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$TOOL_NAME" == *"."* ]]; then
|
|
echo "Tool argument contains a period, do not include extensions while executing tools"
|
|
exit 1
|
|
fi
|
|
|
|
shift; # remove first argument to tool.sh, so we can pass the rest to the tool
|
|
|
|
if $USE_PROD; then
|
|
node $PROD_TOOLS_ROOT/$TOOL_NAME.js "$@"
|
|
else
|
|
npx ts-node --transpile-only $DEV_TOOLS_ROOT/$TOOL_NAME.ts "$@"
|
|
fi |