In no particular order:
* Use `set -e`, because it prevents accidents, and means we can avoid
lengthy &&-joined command chains.
* Override defaults by setting env vars; this means people don't have to
edit the script to change things.
* Use an unpredictable and safely-created tmpdir for building; ain't nobody
wants to cleanup from a tmpdir race condition attack.
* Test for the presence of `git` and `make` *before* asking questions, and
only prompt the user about them if they're missing. No need to bother
people with unnecessary reading.
* Automatically clean up the build directory after use.
* Tidy up some indenting that had come asunder.
q3ded +set sv_dlURL "http://example.org"
The shell removes the quotes but makes the content be a single argument
for progam args. Quake 3 concatenates all the program args and splits
lines at + or newlines. Then Quake 3 parses them using a tokenizer
that skips unquoted C comments beginning with //. This results in
the cvar being set to "http:".
Escape the quotes so they are passed to the program and the tokenizer
knows not to skip C comments.
q3ded +set sv_dlURL \"http://example.org\"
If your distribution doesn’t include such niceties, these could help a
newbie get started with a compiled build of ioquake3 for servers and a
short script to get started.