97 lines
1.8 KiB
Plaintext
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.
|
|
|