summarylogtreecommitdiffstats
path: root/starsector.sh
blob: 7fed46130bae1aedf4d389b075290324acbfbbdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash

set -euo pipefail

# fix for users of special IM modules
unset XMODIFIERS GTK_IM_MODULE QT_IM_MODULE

state_dir="${XDG_DATA_HOME:-"$HOME/.local/share"}/starsector"
saves_path="${state_dir}/saves"
mods_path="${state_dir}/mods"
screenshots_path="${state_dir}/screenshots"
log_path="$state_dir"

mkdir -p "$saves_path"
mkdir -p "$mods_path"
mkdir -p "$screenshots_path"
mkdir -p "$log_path"

classpath="$(find '/usr/share/java/starsector' -type f -name '*.jar' | paste -sd ':')"

config_path="${XDG_CONFIG_HOME:-"$HOME/.config"}/starsector"
startup_config="${config_path}/startup.sh"

jvm_args=(-Xms1536m -Xmx1536m -Xss2048k)
program_args=()

if [ -r "$startup_config" ]
then
    . "$startup_config"
fi

export JAVA_HOME='/usr/lib/starsector/jre'
cd /usr/share/starsector
exec "$JAVA_HOME/bin/java" -server \
  -XX:CompilerThreadPriority=1 \
  -XX:+CompilerThreadHintNoPreempt \
  -Djava.library.path=/usr/lib/starsector \
  -classpath "${classpath}" \
  -Dcom.fs.starfarer.settings.paths.saves="${saves_path}" \
  -Dcom.fs.starfarer.settings.paths.screenshots="${screenshots_path}" \
  -Dcom.fs.starfarer.settings.paths.mods="${mods_path}" \
  -Dcom.fs.starfarer.settings.paths.logs="${log_path}" \
  -Dcom.fs.starfarer.settings.linux=true \
  "${jvm_args[@]}" \
  com.fs.starfarer.StarfarerLauncher \
  "${program_args[@]}"