mirror of
https://git.meli.delivery/meli/meli
synced 2024-11-15 06:12:47 +00:00
benches | ||
debug_printer | ||
melib | ||
scripts | ||
src | ||
testing | ||
tests | ||
text_processing | ||
ui | ||
.gdbinit | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
COPYING | ||
Makefile | ||
meli.1 | ||
meli.conf.5 | ||
README | ||
rustfmt.toml | ||
sample-config |
__ __/ \__ / \__/ \__ . \__/ \__/ \ , _ , _ ___ │ ' / \__ \__/ │' `│ `┒ .' ` │ │ \__/ \__/ \ │ │ │ |────' │ │ \__/ \__/ │ / `.___, /\__ / \__/ ,-. \_/ terminal mail user agent {|||)< / \ `-' DOCUMENTATION ============= After installing meli, see meli(1) and meli.conf(5) for documentation. BUILDING ======== meli requires rust 1.34 and rust's package manager, Cargo. Information on how to get it on your system can be found here: https://doc.rust-lang.org/cargo/getting-started/installation.html With Cargo available, the project can be built with # make The resulting binary will then be found under target/release/meli Run: # make install to install the binary and man pages. This requires root, so I suggest you override the default paths and install it in your $HOME: # make PREFIX=$HOME/.local install See meli(1) and meli.conf(5) for documentation. You can build and run meli with one command: # cargo run --release While the project is in early development, meli will only be developed for the linux kernel and respected linux distributions. Support for more UNIX-like OSes is on the roadmap. BUILDING IN DEBIAN ================== Building with Debian's packaged cargo might require the installation of these two packages: librust-openssl-sys-dev and librust-libdbus-sys-dev BUILDING WITH NOTMUCH ===================== To use the optional notmuch backend feature, you must have libnotmuch installed in your system. In Debian-like systems, install the "libnotmuch" package. To build with notmuch support, prepend the environment variable "MELI_FEATURES='melib/notmuch_backend'" to your make invocation: # MELI_FEATURES="melib/notmuch_backend" make or if building directly with cargo, use the flag '--features="melib/notmuch_backend"'. DEVELOPMENT =========== Development builds can be built and/or run with # cargo build # cargo run There is a debug/tracing log feature that can be enabled by using the flag `--feature debug-tracing` after uncommenting the features in `Cargo.toml`. The logs are printed in stderr, thus you can run meli with a redirection (i.e `2> log`) Code style follows the default rustfmt profile. CONFIG ====== meli by default looks for a configuration file in this location: # $XDG_CONFIG_HOME/meli/config You can run meli with arbitrary configuration files by setting the MELI_CONFIG environment variable to their locations, ie: # MELI_CONFIG=./test_config cargo run TESTING ======= How to run specific tests: # cargo test -p {melib, ui, meli} (-- --nocapture) (--test test_name) PROFILING ========= # perf record -g target/debug/bin # perf script | stackcollapse-perf | rust-unmangle | flamegraph > perf.svg