Seperate config profiles into files
I think the modpack support is really cool. But it would also be nice to have a way to share a profile I have made with friends or public communities so other people can use the same mods. Currently the best way I know of would be to share a shell script with many ferium add-x commands, or instruct someone on how to manually edit their global config file. Alternatively it would be nice to have one of:
-
- a way to export a profile to a config file (yaml, json, toml, or even txt), and a way to import them to create a profile
-
- a way to generate a shareable link (something like
feriumpaste.com/<uid>) similar to vanilla tweaks that either temporarily or permanently hosts the profile configuration and settings (flags for theaddcommands).
- a way to generate a shareable link (something like
I think (1) would be more transparent for people to see what they are downloading while (2) could have a simpler workflow.
More generally, and perhaps only in some alternative universe, I think there could be a more modular way of thinking about how ferium can be used, where a "profile" is nothing more than a folder containing a ferium.toml file and an output subdirectory. The file would specify the minecraft version and the mod sources, instead of tracking them globally. The default output folder would be ./mods, or set with a flag to ferium upgrade. There could still be a global cache for metadata like URLs and descriptions, but this might be a way to make profiles more modular and transparent, however I understand if this part is out of the scope of the project.
Kyle had an idea that we could split the profile into seperate files in the config directory. Then one could easily share single profiles with people.
Implementing it wouldn't be too hard because we can just construct the files back into a regular config in libium
For shareable links I recommend https://0x0.st It's has a very simple api(just curl uploads!)
I think the shareable profiles should be a seperate feauture, make a seperate new issue if you want that
obj-obj/ferium is a fork that has a subcommand based way to import/export profiles. It can be used as a temporary workaround. Though keep in mind I did not write the implementation, and it won't be how it will be implemented in the official repo.
Yeah it's literally just yeeting the profile object into serde_json
This should also allow settings like the GitHub PAT, CurseForge API key, maximum parallel network requests, verbosity of output, download chunk size (for #284), etc to be stored in config.json instead of profile data