#!/usr/bin/env bash # we want jruby-complete to take care of all things ruby unset GEM_HOME unset GEM_PATH JAVA_OPTS="-client -Xmx4096m -XX:ReservedCodeCacheSize=512m -XX:MetaspaceSize=1024m --add-modules java.se --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/javax.crypto=ALL-UNNAMED" # This code supports both: # ./go "namespace:task[--arg1,--arg2]" --rake-flag # ./go namespace:task --arg1 --arg2 -- --rake-flag # The first argument is always the Rake task name task="$1" shift # Initialize arrays for rake flags and task arguments rake_flags=() task_args=() # Arguments before -- are task arguments while [ $# -gt 0 ]; do if [ "$1" = "--" ]; then shift break fi task_args+=("$1") shift done # Remaining arguments are rake flags rake_flags=("$@") # If we have task args, format them if [ ${#task_args[@]} -gt 0 ]; then # Convert task args array to comma-separated string args=$(IFS=','; echo "${task_args[*]}") task="$task[$args]" echo "Executing rake task: $task" fi java $JAVA_OPTS -jar third_party/jruby/jruby-complete.jar -X-C -S rake $task "${rake_flags[@]}"