-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement an alternative way to pass parameters #30
Conversation
Alright killed, the string_t, everything uses filesystem::paths now. Like you said to do, I use the dll/so path as the base, removes the directory searches. Same was done on linux, but of course different functions. |
} | ||
catch (nlohmann::json::exception& error) { | ||
// log error, set parameterFile false, and continue by using getCommandLineParam | ||
sqf::diag_log(error.what()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prefix error with ASP failed to read JSON config:
or something to differentiate from other (Intercept) extensions that might be logging JSON errors
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is already prefixed. This line will be printed immediately after "ASP: Found a Configuration File" line. Good enough for me
std::filesystem::path findConfigFilePath() { | ||
|
||
std::filesystem::path path = getSharedObjectPath(); | ||
path = path.parent_path().parent_path(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be weird with nested mod folders like arma3server/server_mods/my_favourite_ones/@asp
. Better to look inside @asp
folder i.e. just one parent_path to also avoid bloating the arma server folder. Will also work better with server providers that symlinks the mod folders together into a temp folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getSharedObjectPath returns path like
arma3server/server_mods/my_favourite_ones/@asp/intercept/asp.dll
one parent is intercept/ folder, second parent is @asp/ folder
So this should be correct I'd think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, it returns the full path to the plugin. To get the ASP folder we need to back out of file and the intercept directory. Yeah, it is a little cleaner to use the parent_path function rather than adding the "go up path" string and having to make the path normalized.
Co-authored-by: Björn Dahlgren <[email protected]>
changed to pass file path out through data pointer for linux
When testing on some dedicated server providers, users can not access or even add additional command line parameters at start up. There are ways around these limitations, which I will not disclose to prevent abuse. Still there needs to be a way, an alternative way, to allow users to supply configurations to ASP without the need or access to the command line. JSON was chosen because, it's easy to implement and there exists many high quality libraries for it. *(I was really just lazy and just did Nlohmann's json)
Users of ASP merely just create a config directory, and place a json file named "parameters" in the directory.