Age | Commit message (Collapse) | Author |
|
Especially SubcommandRequired is helpful, as without one, we're not
doing all that much.
|
|
Previously, install_mod was a huge function that did a lot of things at
once. Not only did it do the actual mod copying, it also had the
dependency resolution, user interaction, ...
Now, we've split the code and made it more re-usable. The dependency
resolution is done in Baas::install, with special "hooks" being given in
baas::Installer that allow a consumer to customize the installation and
embed the user interaction there.
The code itself is pretty much the same, it is just split up now.
|
|
This uses the workspace feature of cargo, with the benefit that
1) We can more cleanly group the binary (user facing) code from the
library
2) We can have dependencies that apply to the binary only
The first point could've been achieved without workspaces (Cargo
supports both binaries and libraries in a crate), but the second point
is what really makes this approach a lot better.
|
|
|
|
On second thought, we're just calling chown, so let's call it that.
|
|
|
|
This is useful if you run modderbaas as root but want the resulting
directories to be owned by the right uid/gid.
|
|
The function that we needed from there is very small and easily
implemented ourselves. On the other hand, fs_extra seemed to have some
weird options going on and implemented the copy in a bit of a roundabout
manner.
|
|
Apparently, the default world of minetest-server does not have a name
set (which is kind of okay because it is the only existing world
anyway). But ModderBaas needs to deal with this situation properly. In
this case, we simply take the directory name, similar to games.
|
|
Some mods do not come bundled in a separate directory, so we also
support archives that do not contain an inner directory now (e.g. the
"charcoal" mod).
|
|
|
|
|
|
This is the inital commit of a somewhat working version.
|