Closed damianhxy closed 3 months ago
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Description
Use
File.size?
instead ofFile.exist?
when checking the existence of config files, namelysmtp_config.yml
github_config.yml
oauth_config.yml
lti_config.yml
lti_platform_jwk.json
lti_tool_jwk.json
Motivation and Context
For Docker compose installs, the
Makefile
automatically creates empty config files (usingtouch
) when a user updates their installation. This is to avoid problems where the Docker volume mapping creates a directory instead of a file when the path does not exist.However, the codebase currently uses
File.exist?
when checking for the existence of config files, which breaks since the empty config files do exist, causing the code to attempt to load configuration from blank files.By replacing the size with
File.size?
instead, it returnsnil
when the file does not exist OR the file exists but is empty. This is the desired semantics.How Has This Been Tested?
Create blank config files in the
config
subdirectory, e.g.touch smtp_config.yml github_config.yml oauth_config.yml lti_config.yml lti_platform_jwk.json lti_tool_jwk.json
. Run Autolab.Previously, there would be a variety of errors, starting with a failure to load github config.
After, Autolab should run fine, and e.g. the upload buttons for the LTI
json
files will not have the message saying that the files already exist.Ensure that all relevant File existence checks in the codebase have been replaced with
File.size?
Types of changes
Checklist:
overcommit --install && overcommit --sign
to use pre-commit hook for linting