canvas/packages/server/tool.sh

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