Rustow(1)

NAME
rustow - manage farms of symbolic links

SYNOPSIS
rustow [OPTION...] [-S|-D|-R|-A] PACKAGE PACKAGE ... [-S|-D|-R|-A] PACKAGE ...

DESCRIPTION

Rustow is a symlink farm manager which takes distinct sets of software and/or data located in separate directories on the filesystem, and makes them all appear to be installed in a single directory tree. It originally started as personal learning project with rewriting GNU Stow in Rust, but Rustow has some extra features like special directory names for special paths.

Rustow stores no extra state between runs, so there's no danger of mangling directories when file hierarchies don't match the database. Rustow will never delete any files, directories, or links that appear in a Stow directory, so it's always possible to rebuild the target tree.

OPERATIONS

-S PACKAGE...
    Stow the package(s).

    Creates symlinks of files in the package(s) to target directory.

-D PACKAGE...
    Unstow the package(s).

    Removes existing symlinks of files in the package in target directory.

-R PACKAGE...
    Restow the package(s).

    Same as unstowing and then stowing a package(s).

-A PACKAGE...
    Adopt the package(s).

    Imports existing files in target directory to stow package.

    It replaces the file on the stow directory with the one which has the same name from target directory, then runs stow on it. USE WITH CAUTION!

ARGUMENTS

-h, --help
    Print help message and exit.

-V, --version
    Print version info and exit.

-d, --stow-dir DIR
    Set stow dir to DIR (default is current dir).

-t, --target-dir DIR
    Set target dir to DIR (default is parent of stow dir).

-v, --verbose
    Print whats being done to stdout.

-s, --simulate
    Print what will be done to stdout, but do not make any changes to filesystem.

--no-special-keywords
    Disables special keywords while (un)stowing.

--no-security-check
    Disables security check for @root.

-r, --replace-name FIND REPLACE
    Replace FIND with REPLACE in all paths. FIND uses regex to match paths but REPLACE does not. There can be only one replace argument.

SPECIAL FOLDER NAMES
This folder names change target directory only for files inside it. This only works if the directory which has the special name is on the root of the stow package.

@home
    Changes target directory to $HOME variable only for items in this directory tree.

@root
    Changes target directory to root of the filesystem only for items in this directory tree.

AUTHOR
Written by Eren Önen.

COPYRIGHT
Copyright © 2022 Eren Önen and Contributors License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

REPORTING BUGS
Project git repository: <www.gitlab.com/Erenoit/rustow>

SEE ALSO
stow(8)