|
368 | 368 |
|
369 | 369 | if [[ ${INIT_MEMORY} || ${MAX_MEMORY} ]]; then |
370 | 370 | log "Setting initial memory to ${INIT_MEMORY:=${MEMORY}} and max to ${MAX_MEMORY:=${MEMORY}}" |
371 | | - if [[ ${INIT_MEMORY} ]]; then |
| 371 | + if isPercentage "$INIT_MEMORY"; then |
| 372 | + JVM_OPTS="-XX:InitialRAMPercentage=$(getPercentageValue "${INIT_MEMORY}") ${JVM_OPTS}" |
| 373 | + elif [[ ${INIT_MEMORY} ]]; then |
372 | 374 | JVM_OPTS="-Xms${INIT_MEMORY} ${JVM_OPTS}" |
373 | 375 | fi |
374 | | - if [[ ${MAX_MEMORY} ]]; then |
| 376 | + |
| 377 | + if isPercentage "$MAX_MEMORY"; then |
| 378 | + JVM_OPTS="-XX:MaxRAMPercentage=$(getPercentageValue "${MAX_MEMORY}") ${JVM_OPTS}" |
| 379 | + elif [[ ${MAX_MEMORY} ]]; then |
375 | 380 | JVM_OPTS="-Xmx${MAX_MEMORY} ${JVM_OPTS}" |
376 | 381 | fi |
377 | 382 | fi |
@@ -431,15 +436,34 @@ elif [[ ${TYPE} == "CURSEFORGE" ]]; then |
431 | 436 |
|
432 | 437 | copyFilesForCurseForge |
433 | 438 |
|
| 439 | +if isPercentage "$INIT_MEMORY" || isPercentage "$MAX_MEMORY"; then |
| 440 | +# Convert to bytes |
| 441 | +NORM_INIT_MEM=$(normalizeMemSize "$INIT_MEMORY") |
| 442 | +NORM_MAX_MEM=$(normalizeMemSize "$MAX_MEMORY") |
| 443 | +# Convert to MB |
| 444 | +((NORM_INIT_MEM*=1048576)) |
| 445 | +((NORM_MAX_MEM*=1048576)) |
| 446 | + |
| 447 | + cat > "${FTB_DIR}/settings-local.sh" <<EOF |
| 448 | +export MIN_RAM="${NORM_INIT_MEM}M" |
| 449 | +export MAX_RAM="${NORM_MAX_MEM}M" |
| 450 | +export JAVA_PARAMETERS="${JVM_XX_OPTS} ${JVM_OPTS} $expandedDOpts" |
| 451 | +EOF |
| 452 | +else |
434 | 453 | cat > "${FTB_DIR}/settings-local.sh" <<EOF |
435 | 454 | export MIN_RAM="${INIT_MEMORY}" |
436 | 455 | export MAX_RAM="${MAX_MEMORY}" |
437 | 456 | export JAVA_PARAMETERS="${JVM_XX_OPTS} ${JVM_OPTS} $expandedDOpts" |
438 | 457 | EOF |
| 458 | +fi |
439 | 459 |
|
440 | 460 | # patch CurseForge cfg file, if present |
441 | 461 | if [ -f "${FTB_DIR}/settings.cfg" ] && [[ ${MAX_MEMORY} ]]; then |
442 | | - sed -i "s/MAX_RAM=[^;]*/MAX_RAM=${MAX_MEMORY}/" "${FTB_DIR}/settings.cfg" |
| 462 | + if isPercentage "$MAX_MEMORY"; then |
| 463 | + sed -i "s/MAX_RAM=[^;]*/MAX_RAM=${NORM_MAX_MEM}M/" "${FTB_DIR}/settings.cfg" |
| 464 | + else |
| 465 | + sed -i "s/MAX_RAM=[^;]*/MAX_RAM=${MAX_MEMORY}/" "${FTB_DIR}/settings.cfg" |
| 466 | + fi |
443 | 467 | fi |
444 | 468 |
|
445 | 469 | cd "${FTB_DIR}" || (logError "Can't go into ${FTB_DIR}"; exit 1) |
|
0 commit comments