feat: offline mode #14
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduces a
Providerinterface, which includes functions with similar signatures for all the requests that are made to SMR.The interface is implemented by
ficsitProvider, which forwards the call to the existingficsit.*methodlocalProvider, which uses the information from the download cache and converts it to theficsit.*structsMixedProvider, which contains anOfflinefield, based on which it either forwards the call toficsitProviderorlocalProviderThe cached info is kept in memory, and it is loaded initially by
cli.InitCLI, with newly downloaded mods being added to it as part of the download process. The cache can be reloaded, if necessary, usingcache.LoadCache.Since the cache is meant to be a backup system and not a primary one, invalid cache files found while loading are logged, but do not result in an error.
Closes #7