Shebang changes how Unix-like OS run scripts, ensuring the script is run with the specified interpreter. In this case as the line was not the first in the file, users without bash as their default shell would experience issues running the script.
Fixes#9281
More details on shebang usage here https://en.wikipedia.org/wiki/Shebang_(Unix)
This ensures now splash-screen is shown when preferences are changed or CLI-mode is used.
More information in #5131.
However this does NOT fix#5131, since the Arduino IDE in CLI-mode still requires X11 (according to #1981).
Install script adds menu item, desktop icon, file association for
the current user - even if the Arduino installation was placed
outside of the user's home dir (such as in /opt or /usr/local).
Added three more icon resolutions (64px, 72px, 96px) - by using
the 256px file - maybe there is a better source available for this...
Modified build.xml for copying the existing icons and mime.xml file,
both scripts and adjusted file permissions (ugo+x) for *.sh files to
be executable by others by default.
The startup bash script lacked quotes in some places, causing it to
interpret part of the path to the splash image as the main class and
fail to start:
arduino: line 29: [: /home/a/Arduino: binary operator expected
Error: Could not find or load main class IDE.lib.splash.png
For the -splash option, simply adding quotes was not sufficient. If no
splash screen was to be used (so when $SPLASH was empty), using
"$SPLASH" would result in an empty argument being passed to java, which
was then interpreted by java as the name of the base class.
To allow spaces to occur in the -splash option, but also allow it to be
omitted entirely, options to java are now passed through the
$JAVA_OPTIONS array. By using the special "${JAVA_OPTIONS[@]}" syntax,
each element in the array is expanded into a single argument, even when
spaces are present inside (this is identical to what happens with "$@").
This fixes#3950
Also upgrading appbundler with a patched version: https://bitbucket.org/ffissore/appbundler It allows to know the current working directory
These two put together, we can now rely on APP_DIR when loading IDE resources while being sure current working directory is properly set, thus being much more friendly when run from CLI
Fixes#1493