Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

PR482

General discussion for players of Oolite.

Moderators: winston, another_commander

Post Reply
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

PR482

Post by hiran »

I'd like to give educated feedback, but I cannot find build artifacts for download. Building manually does not make sense for me.

From what I understand on the Windows version:
Please keep command line interaction to the command line. Opening a message box will not allow Oolite to terminate without graphical interaction although the command was given via terminal.

It is similar to responding to an email with a fax message. So rather than distinguishing the different operating systems Oolite should just print the allowed command line options on stdout and terminate.
Sunshine - Moonlight - Good Times - Oolite
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6570
Joined: Wed Feb 28, 2007 7:54 am

Re: PR482

Post by another_commander »

The message box is the standard way of all Windows games that I have played till now for handling a -help parameter type command option.

What is the problem if the user needs to click OK or press Enter or Esc on the message box for Oolite to terminate? The terminal will be ready for the next command anyway, it doesn't have to wait for the game to finish to be usable again.

Also, keep in mind that SDL redirects stdout to file, so even if the output was sent to the terminal by Oolite, it would still end up in the stdout.txt file. A user who doesn't know any better will not see the actual help message because the terminal will not receive output. They would have to think to open stdout.txt instead.
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

another_commander wrote: Wed May 22, 2024 7:12 pm
The message box is the standard way of all Windows games that I have played till now for handling a -help parameter type command option.
That is standard? Well, I left that OS a long time ago. And am happy where I am today.
another_commander wrote: Wed May 22, 2024 7:12 pm
What is the problem if the user needs to click OK or press Enter or Esc on the message box for Oolite to terminate? The terminal will be ready for the next command anyway, it doesn't have to wait for the game to finish to be usable again.

Also, keep in mind that SDL redirects stdout to file, so even if the output was sent to the terminal by Oolite, it would still end up in the stdout.txt file. A user who doesn't know any better will not see the actual help message because the terminal will not receive output. They would have to think to open stdout.txt instead.
This is even more strange for me, but then you are right to stick to the standard. And I am right for having left. :-)

How can I find the build artifacts?
Sunshine - Moonlight - Good Times - Oolite
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6570
Joined: Wed Feb 28, 2007 7:54 am

Re: PR482

Post by another_commander »

User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

another_commander wrote: Wed May 22, 2024 7:30 pm
That's where I searched and could not find them. But this time, all of a sudden the page would scroll. It really depends on where I use that wheel.
Thanks, I'm checking...
Sunshine - Moonlight - Good Times - Oolite
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

Feedback on the Linux version:
The output looks very usable. I invoked Oolite via the wrapper script

Code: Select all

hiran@silver:~/GNUstep/Applications/Oolite$ ./oolite --help
Usage: oolite [options]

Options can be any of the following: 

--compile-sysdesc			Compile system descriptions *
--export-sysdesc			Export system descriptions *
-hdr				Start up in HDR mode
-load [filepath]:			Load commander from [filepath]
-message [messageString]		Display [messageString] at startup
-noshaders			Start up with shaders disabled
-nosplash				Force disable splash screen on startup
-nosound				Start up with sound disabled
-novsync				Force disable V-Sync
--openstep			When compiling or exporting system
				descriptions, use openstep format *
-showversion			Display version at startup screen
-splash				Force splash screen on startup
-verify-oxp [filepath]			Verify OXP at [filepath] *
--xml				When compiling or exporting system 
				descriptions, use xml format *

Options marked with "*" are available only in Test Release configuration.
Erk. It looks like Oolite died with an error. When making an error
report, please copy + paste the log above into the report.

hiran@silver:~/GNUstep/Applications/Oolite$ 
As for the last two lines of output - they come from the wrapper as it detected the nonzero exit code. Plus in case users started Oolite via the graphical launcher icon (which means no terminal window is open and Oolite crashes with nonzero exit code), an additional notification is shown:

Image
Sunshine - Moonlight - Good Times - Oolite
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6570
Joined: Wed Feb 28, 2007 7:54 am

Re: PR482

Post by another_commander »

Hmm, maybe I should set it to return 0 then. I had thought it would be good to have a distinctive exit code when help option is passed, but I had not counted on the wrapper script falling flat on its face.
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

another_commander wrote: Wed May 22, 2024 8:26 pm
Hmm, maybe I should set it to return 0 then. I had thought it would be good to have a distinctive exit code when help option is passed, but I had not counted on the wrapper script falling flat on its face.
I would not call it 'falling flat on it's face'.
When a user doubleclicks an icon but for some reason Oolite cannot startup it fails with a nonzero exit code - but the user would not even see an error message. That's why the wrapper script shows something so the user knows.

If we define exit code 2 to be the help message on the command line (and nothing else) we can modify the wrapper to not issue such messages. Or should it already parse the command line, understand that [-]-help was used and not do anything?
Sunshine - Moonlight - Good Times - Oolite
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6570
Joined: Wed Feb 28, 2007 7:54 am

Re: PR482

Post by another_commander »

I opted for changing the exit code to 0 because there is no real need of a special code when exiting from the help page right now. If we ever do need to do something special from an external app after help has been shown, we can reconsider this and see into changing the wrapper scripts, but for now I think we should be OK. New build is cooking as I am writing this, feel free to test and confirm that no bogus crash messages appear.
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

another_commander wrote: Thu May 23, 2024 5:33 am
I opted for changing the exit code to 0 because there is no real need of a special code when exiting from the help page right now. If we ever do need to do something special from an external app after help has been shown, we can reconsider this and see into changing the wrapper scripts, but for now I think we should be OK. New build is cooking as I am writing this, feel free to test and confirm that no bogus crash messages appear.
Finally I got to test the latest build 1.91.0.7611-240524-818d771 and ran the help command. This is the output I got:

Code: Select all

hiran@silver:~/GNUstep/Applications/Oolite$ ./oolite --help
Usage: oolite [options]

Options can be any of the following: 

--compile-sysdesc			Compile system descriptions *
--export-sysdesc			Export system descriptions *
-load [filepath]:			Load commander from [filepath]
-message [messageString]		Display [messageString] at startup
-noshaders			Start up with shaders disabled
-nosplash				Force disable splash screen on startup
-nosound				Start up with sound disabled
-novsync				Force disable V-Sync
--openstep			When compiling or exporting system
				descriptions, use openstep format *
-showversion			Display version at startup screen
-splash				Force splash screen on startup
-verify-oxp [filepath]			Verify OXP at [filepath] *
--xml				When compiling or exporting system 
				descriptions, use xml format *

Options marked with "*" are available only in Test Release configuration.hiran@silver:~/GNUstep/Applications/Oolite$ 
Looks much better now that 'Oolite did not crash' (the exit code is zero). The formatting could be a bit nicer - especially a final linefeed or two to distinguish the output from the prompt for the next command would be helpful.

I am happy we have now the --help command line option.
How about --version? it would just print the Oolite version and exit with zero.
Sunshine - Moonlight - Good Times - Oolite
User avatar
hiran
Theorethicist
Posts: 2182
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: PR482

Post by hiran »

Wonderful! I just installed Oolite 1.91.0.7616-240527-f882b71-linux-test-x86_64
and checked the --help command. The output is like this:

Code: Select all

hiran@silver:~/GNUstep/Applications/Oolite$ ./oolite --help
Usage: oolite [options]

Options can be any of the following: 

--compile-sysdesc			Compile system descriptions *
--export-sysdesc			Export system descriptions *
-load [filepath]			Load commander from [filepath]
-message [messageString]		Display [messageString] at startup
-noshaders				Start up with shaders disabled
-nosplash    				Force disable splash screen on startup
-nosound    				Start up with sound disabled
-novsync				Force disable V-Sync
--openstep				When compiling or exporting
					system descriptions, use openstep
					format *
-showversion				Display version at startup screen
-splash					Force splash screen on startup
-verify-oxp [filepath]    		Verify OXP at [filepath] *
--xml					When compiling or exporting
					system descriptions, use xml
					format *

Options marked with "*" are available only in Test Release configuration.

hiran@silver:~/GNUstep/Applications/Oolite$ 
Thank you, that is very readable now. :-)
Sunshine - Moonlight - Good Times - Oolite
Post Reply