I think it would be quite good - at least for the Linux version of the server - to have a wide help for commands, parameters and so on (including the version of the binary).
The main purpose is to have an intuitive CLI for users. By now, I am currently missing some simple standards such as some kind of "--version" parameter and a help which gives me information on what parameters and subcommands the alt:V server provides and how I do use those parameters, subcommands and the server itself.
Then, starting the alt:V server would be more self-explanatory to outsiders, who've used several command line programs before. I mean, the server doesnt have to include a full man-documentation. But at least a help and a version info.
Regarding the version info: It is fundamental to be able to determine the version of a binary, which does not include the name of the version in its filename.
To not have a version info is critical, as it is not possible to check the version after an update of the server binary. You would instead have to compare the signature of the current binary to the latest binary - which is too ponderous.
Is your feature request related to a problem? Please describe.
No. Not really, except that the alt:V server has a unintuitive CLI.
Describe the solution you'd like
I would like you guys to provide a simple help information and, based on the help, at least provide a version parameter, subcommand or info in the help.
I imagine a CLI like that in the future:
$ ./altv-server --help
altv-server provides the server application for the alt:V multiplayer modification for GTAV.
USAGE:
./altv-server
[-v|--version] [--config <path>] [--logfile <path>] [--logfolder <path>] [--no-logfile]
[--extra-res-folder <path>] [--justpack] [--host <path>] [--port <port>]
OPTIONS:
-v|--version:
Prints the current version details (branch and build number).
--config:
Path to server config file ([path] needs to be replaced with config path)
--logfile:
Path to log file, will only output one log file to specific path instead of putting them into the log folder ([path] needs to be replaced with log path)
--logfolder:
Path to log folder ([path] needs to be replaced with log folder path)
--no-logfile:
Disables the logging to log files
--extra-res-folder:
Path to additional resource folder ([path] needs to be replaced with the the additional resource folder path)
--justpack:
Creates packages and a resources.json for cdn download in the root folder
--host:
Specifies the host which the server should bind to ([host] needs to be replaced with the host)
--port:
Specifies the port which the should bind to ([port] needs to be replaced with port)
Of course, depending on which library you will use for a CLI interface in C++, the output shown above might be different.
Describe alternatives you've considered
There're none, not really.
I think it would be quite good - at least for the Linux version of the server - to have a wide help for commands, parameters and so on (including the version of the binary).
The main purpose is to have an intuitive CLI for users. By now, I am currently missing some simple standards such as some kind of "--version" parameter and a help which gives me information on what parameters and subcommands the alt:V server provides and how I do use those parameters, subcommands and the server itself.
Then, starting the alt:V server would be more self-explanatory to outsiders, who've used several command line programs before. I mean, the server doesnt have to include a full man-documentation. But at least a help and a version info.
Regarding the version info: It is fundamental to be able to determine the version of a binary, which does not include the name of the version in its filename. To not have a version info is critical, as it is not possible to check the version after an update of the server binary. You would instead have to compare the signature of the current binary to the latest binary - which is too ponderous.
Is your feature request related to a problem? Please describe. No. Not really, except that the alt:V server has a unintuitive CLI.
Describe the solution you'd like I would like you guys to provide a simple help information and, based on the help, at least provide a version parameter, subcommand or info in the help.
I imagine a CLI like that in the future:
Of course, depending on which library you will use for a CLI interface in C++, the output shown above might be different.
Describe alternatives you've considered There're none, not really.
Additional context
For implementation, you could use e.g. that C++ library: https://github.com/CLIUtils/CLI11
Thanks in advance.