[yabridgectl] Make syncing much more resiliant

This commit does a couple of things since the refactoring made it
difficult to split these things up:

- The counts for managed and new plugins are now always correct, even
  when plugin directory A contains a symlink to plugin directory B.
- Orphan files will now be pruned from managed VST3 directories, making
  switching between different architectures easier. (the previous
  approach involved nuking the entire bundle, which of course has a
  bunch of downsides)
This commit is contained in:
Robbert van der Helm
2021-07-03 18:15:10 +02:00
parent 0f3730fd97
commit 70c40970aa
2 changed files with 96 additions and 77 deletions
+8 -5
View File
@@ -88,11 +88,14 @@ Versioning](https://semver.org/spec/v2.0.0.html).
in an `00cc:err:process:exec_process` error when running `yabridgectl sync`
because yabridgectl would try to run the 64-bit `yabridge-host.exe` in that
prefix.
- Merged VST3 bundles set up in `~/.vst3/yabridge` are now always cleared before
yabridgectl adds new files to them. This makes it easier to switch from the
64-bit version of a plugin to the 32-bit version, or from a 64-bit version of
yabridge to the 32-bit version. I don't know why you would want to do either
of those things, but now you can!
- Fixed incorrect new and total plugin counts. These counts are now always
correct, even when using multiple versions of the same VST3 plugin or when a
plugin directory contains a symlink to another plugin directory.
- Aside from pruning only unmanaged VST3 bundles in `~/.vst3/yabridge`, yabridge
will now also prompt you to prune unmanaged files within a VST3 bundle. This
makes it easy to switch from the 64-bit version of a plugin to the 32-bit
version, or from a 64-bit version of yabridge to the 32-bit version. I don't
know why you would want to do either of those things, but now you can!
- Copies of `libyabridge-vst2.so` and `libyabridge-vst3.so` are now reflinked
when supported by the file system. This speeds up the file coyping process
while also reducing the amount of disk space used for yabridge when using