bcachefs-tools/rust-src
Thomas Bertschinger fb35dbfdc5 remove library from bcachefs-tools Rust package
When bcachefs was a C program that had some functions implemented in
Rust, it was necessary to make a static library containing the Rust
functions available for the C program to link.

Now that bcachefs is a Rust program, that library is no longer needed.
Instead, the Rust executable links in libbachefs.a.

This patch updates the crate structure to reflect that. The command
functions are moved into their own module.

There could be a need to create a "libbachefs-tools" library in the
future that exposes an API for bcachefs functionality to other
userspace programs. That will be a different, external API as opposed to
the previous library functions which were an internal API for the
bcachefs tool itself.

Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-01-16 01:46:58 -05:00
..
bch_bindgen convert main() from C to Rust 2024-01-16 01:46:41 -05:00
src remove library from bcachefs-tools Rust package 2024-01-16 01:46:58 -05:00
.gitignore Rust now integrated into bcachefs binary 2023-02-21 01:03:08 -05:00
build.rs convert main() from C to Rust 2024-01-16 01:46:41 -05:00
Cargo.lock convert main() from C to Rust 2024-01-16 01:46:41 -05:00
Cargo.toml remove library from bcachefs-tools Rust package 2024-01-16 01:46:58 -05:00
README.md Rust now integrated into bcachefs binary 2023-02-21 01:03:08 -05:00
rustfmt.toml Rust now integrated into bcachefs binary 2023-02-21 01:03:08 -05:00

Usage

bcachefs-mount 0.1.0
Mount a bcachefs filesystem by its UUID

USAGE:
    bcachefs-mount [OPTIONS] <uuid> <mountpoint>

FLAGS:
    -h, --help       
            Prints help information

    -V, --version    
            Prints version information


OPTIONS:
    -o <options>                 
            Mount options [default: ]

    -p, --password <password>    
            Where the password would be loaded from.
            
            Possible values are: "fail" - don't ask for password, fail if filesystem is encrypted; "wait" - wait for
            password to become available before mounting; "ask" -  prompt the user for password; [default: fail]

ARGS:
    <uuid>          
            External UUID of the bcachefs filesystem

    <mountpoint>    
            Where the filesystem should be mounted

Caveats

  • --password ask is not yet implemented, but you can use --password wait, and load the key with bcachefs unlock.

Build

$ git submodule update --init --recursive
$ cargo build --release

Binary will be built in target/release/bcachefs-mount

Dependencies:

  • rust
  • blkid
  • uuid
  • liburcu
  • libsodium
  • zlib
  • liblz4
  • libzstd
  • libkeyutils