Commit Graph

54 Commits

Author SHA1 Message Date
Robbert van der Helm dabefef098 [yabridgectl] Don't mention the method on sync
Unless it's not set to copies.
2022-01-07 00:29:52 +01:00
Robbert van der Helm f5af027847 Print a deprecation warning on sync for symlinks 2022-01-02 20:23:37 +01:00
Robbert van der Helm e0ab24e645 Update copyright headers
Happy new year!
2022-01-01 18:32:10 +01:00
Robbert van der Helm 6d76daff80 [yabridgectl] Print yabridge host paths in status 2021-07-20 02:02:39 +02:00
Robbert van der Helm 2c25615ea5 Restore old yabridgectl plugin count with symlinks
The count will probably be a bit off now, but it's better than counting
only two plugins.
2021-07-13 00:01:32 +02:00
Robbert van der Helm bf84057044 [yabridgectl] Normalize symlinks for plugin counts
Now this should actually be correct with partially overlapping plugin
directories when symlinks were used.
2021-07-05 17:56:22 +02:00
Robbert van der Helm c13d8f2ee3 [yabridgectl] Recursively prune empty directories
If pruning results in a directory becoming empty, then we should remove
that directory. This approach won't touch any directories that we aren't
pruning from.
2021-07-03 18:35:51 +02:00
Robbert van der Helm 70c40970aa [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)
2021-07-03 18:20:05 +02:00
Robbert van der Helm 85c84aba0f [yabridgectl] Partially revert 5ea04c4
We should be a bit more clever about this. This approach would mean that
the plugin would be rescanned every time, since the whole 'don't
reinstall plugins if that wouldn't change anything' thing no longer
works with this approach.
2021-07-03 16:38:56 +02:00
Robbert van der Helm 5ea04c402e [yabridgectl] Clean up VST3 bundles
We would completely remove VST3 bundles that yabridgectl does not know
about anymore, but we would not remove leftover files within bundles.
This could otherwise cause issues when messing with 32-bit and 64-bit
versions of plugins or yabridge itself.
2021-06-24 16:04:04 +02:00
Robbert van der Helm 0b8221b136 [yabridgectl] Add support for 32-bit yabridge VST3
Bundles containing a 32-bit version of `libyabridge-vst3.so` should use
the `x86-linux` directory instead of the `x86_64-linux` directory.
2021-06-24 15:48:43 +02:00
Robbert van der Helm b521debbb7 [yabridgectl] Determine libyabridge-vst3.so arch
We're going to need this for supporting merged VST3 bundles with a
32-bit libyabridge-vst3.so.
2021-06-24 15:23:41 +02:00
Robbert van der Helm 3ad70678da [yabridgectl] Fix typo in error message 2021-06-23 01:42:02 +02:00
Robbert van der Helm 9ae0e8ca38 [yabridgectl] Use reflinks instead of copies
Whenever available. This should speed up the copying process while also
reducing the amount of disk space wasted on Btrfs and XFS filesystems.
2021-06-12 11:40:24 +02:00
Robbert van der Helm 511aa14700 [yabridgectl] Fix reporting of new VST3 plugins
When yabridgectl sets up both a VST3 bundle containing both a 32-bit and
a 64-bit plugin. The libyabridge.so file already existed, so the
reported number was always off.
2021-05-31 17:05:34 +02:00
Robbert van der Helm b04c0b2c65 Update links to the VST3 documentation
Those were broken after Steinberg restructured the docs with the VST
3.7.2 SDK release.
2021-04-18 14:24:03 +02:00
Robbert van der Helm 7ff4bb1585 [yabridgectl] Add commands for managing blacklist
Relevant for #88.
2021-04-14 19:23:04 +02:00
Robbert van der Helm 1d66481aad [yabridgectl] Add a blacklist #88
This lets you skip single plugins and entire directories during the
indexing process.
2021-04-14 17:51:43 +02:00
Robbert van der Helm adebb63e18 [yabridgectl] Show VST2 architecture in status 2021-02-26 15:58:33 +01:00
Robbert van der Helm d11302d6b5 [yabridgectl] Unify plugin handling
VST2 and VST3 plugins are now handled in the same way, reducing a bit of
duplication. We now also store the architecture for VST2 plugins so we
can show that in `yabridgectl status` later.
2021-02-26 15:56:20 +01:00
Robbert van der Helm ebd6c95ceb [yabridgectl] Show VST3 module type and arch
In `yabridgectl status`.
2021-02-26 15:11:11 +01:00
Robbert van der Helm e6ec8819cb [yabridgectl] Use relative paths in verbose output
This should make the output look much less cluttered since most of the
output would consist of the same path prefix being repeated over and
over again.

The plugin location now also always ends with a trailing slash for
consistency's sake. I don't think Rust's Path has a way to normalize the
paths without also resolving symlinks.
2021-02-26 14:35:47 +01:00
Robbert van der Helm 9483c11ee0 [yabridgectl] Reword not yet installed status
The red `not installed` was causing some confusion.
2021-02-26 14:11:46 +01:00
Robbert van der Helm 4b461e44a1 [yabridgectl] Add a todo about orphans in subdirs 2021-01-04 13:49:06 +01:00
Robbert van der Helm 439c22c767 [yabridgectl] Consider subdirectories for orphans 2021-01-03 22:43:57 +01:00
Robbert van der Helm cd4752116a [yabridgectl] Split up Vst3Module
So we can add easily add additional fields later.
2021-01-03 21:40:36 +01:00
Robbert van der Helm c206d68b12 [yabridgectl] Allow permanently disabling checks 2021-01-02 14:32:54 +01:00
Robbert van der Helm ef540f354c [yabridgectl] Add an option to undo setting --path 2021-01-02 14:09:59 +01:00
Robbert van der Helm 34f8d3b1d2 Update the copyright notices for 2021 2021-01-01 18:54:02 +01:00
Robbert van der Helm 5773c471f9 [yabridgectl] Don't purge VST3 yabridge.toml
We only want to consider directories here.
2020-12-27 18:25:13 +01:00
Robbert van der Helm 4f8bfbcda6 [yabridgectl] Fix clippy lints 2020-12-24 13:12:19 +01:00
Robbert van der Helm d79ccc75e6 [yabridgectl] Symlink VST 3.6.10 bundle resources
Although I haven't run into any of these 'new' bundles yet. Everything's
still in the legacy format.
2020-12-24 12:47:45 +01:00
Robbert van der Helm a0098034ed [yabridgectl] Rename the Vst3Module functions
Creating a clear naming scheme here is more difficult than it should be.
2020-12-24 12:38:47 +01:00
Robbert van der Helm a3e76b3370 [yabridgectl] Warn for duplicate VST3 plugins
Since we can't have multiple plugins with the same name this way.
2020-12-24 12:31:04 +01:00
Robbert van der Helm 9d33cafd37 [yabridgectl] Allow removing orphan VST3 modules 2020-12-24 12:12:48 +01:00
Robbert van der Helm 68c95e9527 [yabridgectl] Allow skipping hash checks 2020-12-24 11:54:45 +01:00
Robbert van der Helm 55957ca798 [yabridgectl] Allow setting up VST3 plugins
This is still missing checks for removing leftover files, symlinks for
resources and presets, and a way to differentiate between plugins with
the same name from different prefixes.
2020-12-24 00:04:05 +01:00
Robbert van der Helm 3d27426b9d [yabridgectl] Index .vst3 files
It doesn't actually identify VST3 modules yet though.
2020-12-23 18:39:22 +01:00
Robbert van der Helm 3dc1b1585b [yabridgectl] Add field for indexing VST3 modules 2020-12-23 17:41:16 +01:00
Robbert van der Helm a7d284469a [yabridgectl] Locate libyabridge-vst3.so
And unify how finding files in yabridgectl works.
2020-12-23 17:12:28 +01:00
Robbert van der Helm a428d08eff Update yabridgectl for libyabridge-vst2.so 2020-12-07 18:28:16 +01:00
Robbert van der Helm b9b61e420f [yabridgectl] Reorganize path check 2020-11-20 14:24:42 +01:00
Robbert van der Helm e6af947fe1 [yabridgectl] Only recreate files when necessary
As suggested in #42. This also adds a `--force` flag to reenable the old
behaviour and always recreate files even when not necessary.
2020-10-17 18:21:53 +02:00
Robbert van der Helm 81696f4dde Fix broken symlinks not being removed
`Path::exists()` returns false for broken symlinks:

https://doc.rust-lang.org/std/path/struct.Path.html#method.exists
2020-07-27 16:10:27 +02:00
Robbert van der Helm 6bba1a9bf8 Check for Wine and yabridge compatibility on sync
This will probably solve the last common setup issue. Starting Wine can
take a second so this check is only repeated when either Wine or
yabridge get updated.
2020-07-19 16:57:18 +02:00
Robbert van der Helm 3e438be302 Add an option to disable setup checks
The path check should only take a few milliseconds to run, but checking
whether yabridge-host.exe runs correctly could take over a second when
wineserver isn't already running in the background.
2020-07-19 13:54:12 +02:00
Robbert van der Helm 86be5c4814 Wrap filesystem functions for readable errors
Without having to repeat this all over the place.
2020-07-19 13:50:25 +02:00
Robbert van der Helm 9580dbea12 Wrap options for yabridgectl sync/set in a struct
To prevent having to pass a bunch of confusing boolean values or an
entire ArgMatch object.
2020-07-19 13:36:45 +02:00
Robbert van der Helm 74be0992fd Update yabridgectl documentation 2020-07-17 13:34:55 +02:00
Robbert van der Helm 0f9599df4d Fix sentence structure in yabridgectl messages 2020-07-16 22:53:20 +02:00