3m/IDEAS

97 lines
1.8 KiB
Plaintext

Actions:
-S - sync the modlist
-Q - query for a mod
-I - install a mod
-U - update mods
-R - remove mods
Settings:
~/.3m/config
Local files:
- main binary
- local modlist.3mlm
- local repoinfo.3mri
- config
Remote files:
- Official server: modlist.3mml
- Mod repositories: modinfo.3mmi
modlist.3mml Format:
{modname}
[server]
srv_addr
[modinfo]
/modinfo/path/at/server
{end}
modinfo.3mmi Format:
[name]
mod_name
[version]
current_version
[repotype]
repository_type (zip/git)
[repoaddr]
repository_address_or_path_to_a_remote_zip_file
modlist.3mlm Format:
{modname}
[version]
current_version
[repotype]
repository_type
[repoaddr]
repository_address
{end}
modinfo.3mri Format:
{modname}
[version]
installed_version
{end}
Settings:
[localpath]
path_to_local_minetest_mods_repo
[modlist]
path_to_modlist_3mml
---
NEW 3m:
1. Use my NetSocket++ library:
https://github.com/Phitherek/NetSocket--
http://www.phitherek.mooo.com/doxy/libnetsocketpp
This will spare a lot of socket code and shrink the code.
2. Classes:
ModListData
LocalModListData
RemoteModListData
RepoInfoData
RemoteModInfo
ModList
ActionList
And every one of these in separate .cpp and .h file.
Content of the classes like in structs.
+ methods:
clear()
parse() (for some)
get() (for some)
3. Untouched functions:
strip_endl();
4. Exceptions:
Handlers for NetSocket++ exceptions.
+
ParseException
ExtractException
DownloadException
FileException
... and everything that somehow will be needed in the process.
5. APIs rather than external programs:
There are so many C++ libraries that I think I should find ones for 7z (p7zip) and wget (or something similar) - it is always better than executing programs by "system".
6. Rewrite
3m must be rewritten in separate branch with the use of existing code.
7. Finish it finally
3m is not complete. Missing actions must be programmed.