mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Update yabridgectl documentation
This commit is contained in:
+32
-26
@@ -13,11 +13,11 @@ from anywhere. All of the information below can also be found through
|
||||
|
||||
### Yabridge path
|
||||
|
||||
Yabrdgectl will need to know where it can find `libyabridge.so`. By default it
|
||||
will look for it in both `~/.local/share/yabridge` (the recommended installation
|
||||
directory when using the prebuilt binaries) and in `/usr/lib`. You can use the
|
||||
command below to override this behaviour and to use a custom installation
|
||||
directory instead.
|
||||
Yabridgectl will need to know where it can find `libyabridge.so`. By default it
|
||||
will search for it in both `~/.local/share/yabridge` (the recommended
|
||||
installation directory when using the prebuilt binaries) and in `/usr/lib`. You
|
||||
can use the command below to override this behaviour and to use a custom
|
||||
installation directory instead.
|
||||
|
||||
```shell
|
||||
yabridgectl set --path=<path/to/directory/containing/yabridge/files>
|
||||
@@ -25,10 +25,12 @@ yabridgectl set --path=<path/to/directory/containing/yabridge/files>
|
||||
|
||||
### Installation methods
|
||||
|
||||
By default, yabridgectl will use the copy-based installation method for yabridge
|
||||
since this installation method works with any VST host. If you are using a DAW
|
||||
that supports individually sandboxed plugins such as Bitwig Studio, then you can
|
||||
choose between using copies and symlinks using the command below.
|
||||
Yabridge can be set up using either copies or symlinks. By default, yabridgectl
|
||||
will use the copy-based installation method since this will work with any VST
|
||||
host. If you are using a DAW that supports individually sandboxed plugins such
|
||||
as Bitwig Studio, then you can choose between using copies and symlinks using
|
||||
the command below. Make sure to rerun `yabridgectl sync` after changing this
|
||||
setting.
|
||||
|
||||
```shell
|
||||
yabridgectl set --method=<copy|symlink>
|
||||
@@ -36,43 +38,47 @@ yabridgectl set --method=<copy|symlink>
|
||||
|
||||
### Managing directories
|
||||
|
||||
Yabridgectl manage Windows VST plugin install locations for you. To add, remove
|
||||
and list directories, or to list the plugins currently installed inside one of
|
||||
those directories, you can use the command below.
|
||||
Yabridgectl can manage multiple Windows VST plugin install locations for you. To
|
||||
add, remove and list directories, you can use the commands below. The status
|
||||
command will show you yabridgectl's current settings and the installation status
|
||||
for all of your plugins.
|
||||
|
||||
```shell
|
||||
# Add a location containing plugins
|
||||
# For instance, use the below command for the most common VST2 plugin directory
|
||||
# Add a directory containing plugins
|
||||
# Use the command from the next line to add the most common VST2 plugin directory
|
||||
# yabridgectl add "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins"
|
||||
yabridgectl add <path/to/plugins>
|
||||
# Remove a plugin location, this will ask you if you want to remove any leftover yabridge files
|
||||
# Remove a plugin location, this will ask you if you want to remove any leftover files from yabridge
|
||||
yabridgectl rm <path/to/plugins>
|
||||
# List the current plugin locations
|
||||
yabridgectl list
|
||||
# Show the current settings and the installation status for all plugins found
|
||||
# Show the current settings and the installation status for all of your plugins
|
||||
yabridgectl status
|
||||
```
|
||||
|
||||
### Installing and updating
|
||||
|
||||
Finally you can tell yabridgectl to set up or update yabridge for all of your
|
||||
plugins at once using the commands below. By default yabridgectl will warn you
|
||||
if it finds leftover `.so` files, but it will only delete those when ran using
|
||||
the `--prune` option.
|
||||
Lastly you can tell yabridgectl to set up or update yabridge for all of your
|
||||
plugins at once using the commands below. Yabridgectl will warn you if it finds
|
||||
unrelated `.so` files that may have been left over after uninstalling a plugin.
|
||||
You can rerun the sync command with the `--prune` option to delete those files.
|
||||
If you are using the default copy-based installation method, it will also verify
|
||||
that your search `PATH` has been set up correctly so you can get up and running
|
||||
faster.
|
||||
|
||||
```shell
|
||||
# Set up copies or symlinks of yabridge for all plugins under the watched directories
|
||||
# Set up yabridge for all plugins found under the plugin locations
|
||||
yabridgectl sync
|
||||
# Set up yabridge, and also remove any '.so' still leftover after removing a plugin
|
||||
# Set up yabridge, and also remove any leftover .so files
|
||||
yabridgectl sync --prune
|
||||
```
|
||||
|
||||
## Alternatives
|
||||
|
||||
If you want to script your own installation behaviour and don't feel like using
|
||||
yabridgectl, then you could use one of the below bash snippets as a base. This
|
||||
approach is slightly less robust and does not do any problem detection or status
|
||||
reporting, but it will get you started.
|
||||
yabridgectl, then you could use one of the below bash snippets instead. This
|
||||
approach is slightly less robust and does not perform any problem detection or
|
||||
status reporting, but it will get you started.
|
||||
|
||||
```shell
|
||||
# For use with symlinks
|
||||
@@ -94,7 +100,7 @@ find -L "$plugin_dir" -type f -iname '*.dll' -print0 |
|
||||
xargs -0 -n1 cp "$yabridge_home/libyabridge.so"
|
||||
```
|
||||
|
||||
## Building
|
||||
## Building from source
|
||||
|
||||
After installing [Rust](https://rustup.rs/), simply run the command below to
|
||||
compile and run:
|
||||
|
||||
@@ -47,7 +47,7 @@ pub fn remove_directory(config: &mut Config, path: &Path) -> Result<()> {
|
||||
let orphan_files = files::index_so_files(path);
|
||||
if !orphan_files.is_empty() {
|
||||
println!(
|
||||
"Warning: Found {} leftover '.so' files still in this directory:",
|
||||
"Warning: Found {} leftover .so files still in this directory:",
|
||||
orphan_files.len()
|
||||
);
|
||||
|
||||
@@ -221,10 +221,10 @@ pub fn do_sync(config: &Config, prune: bool, verbose: bool) -> Result<()> {
|
||||
// tries to load them
|
||||
if !orphan_so_files.is_empty() {
|
||||
if prune {
|
||||
println!("Removing {} leftover '.so' files:", orphan_so_files.len());
|
||||
println!("Removing {} leftover .so files:", orphan_so_files.len());
|
||||
} else {
|
||||
println!(
|
||||
"Found {} leftover '.so' files, rerun with the '--prune' option to remove them:",
|
||||
"Found {} leftover .so files, rerun with the '--prune' option to remove them:",
|
||||
orphan_so_files.len()
|
||||
);
|
||||
}
|
||||
@@ -243,7 +243,7 @@ pub fn do_sync(config: &Config, prune: bool, verbose: bool) -> Result<()> {
|
||||
}
|
||||
|
||||
println!(
|
||||
"Finished setting up {} plugins using {}, skipped {} non-plugin '.dll' files",
|
||||
"Finished setting up {} plugins using {}, skipped {} non-plugin .dll files",
|
||||
num_installed,
|
||||
config.method.plural_name(),
|
||||
num_skipped_files
|
||||
|
||||
@@ -164,7 +164,7 @@ fn find_files(directory: &Path) -> (Vec<PathBuf>, Vec<FoundFile>) {
|
||||
.follow_links(true)
|
||||
.into_iter()
|
||||
.filter_map(|e| e.ok())
|
||||
.filter(|x| !x.file_type().is_dir())
|
||||
.filter(|e| !e.file_type().is_dir())
|
||||
.enumerate()
|
||||
{
|
||||
// This is a bit of an odd warning, but I can see it happening that someone adds their
|
||||
|
||||
@@ -26,8 +26,6 @@ mod config;
|
||||
mod files;
|
||||
mod utils;
|
||||
|
||||
// TODO: Reward parts of the readme
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut config = Config::read()?;
|
||||
|
||||
@@ -106,7 +104,7 @@ fn main() -> Result<()> {
|
||||
Arg::with_name("prune")
|
||||
.short('p')
|
||||
.long("prune")
|
||||
.about("Remove unrelated or leftover '.so' files"),
|
||||
.about("Remove unrelated or leftover .so files"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("verbose")
|
||||
|
||||
Reference in New Issue
Block a user