summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Arazas <foo.dogsquared@gmail.com>2022-06-16 13:00:39 +0800
committerGuix Patches Tester <>2022-06-16 06:03:11 +0100
commit787b534356da26bd30c65735356d308fc7da4247 (patch)
tree777b9a7f5e1373e6e6b0d0786345ef0db9e6a117
parent17dff2590e3a6cd6646ba519b0d97ee465ce2cdb (diff)
downloadguix-patches-787b534356da26bd30c65735356d308fc7da4247.tar
guix-patches-787b534356da26bd30c65735356d308fc7da4247.tar.gz
gnu: Add treefmt.series-12695
* gnu/packages/rust-apps.scm (treefmt): New variable.
-rw-r--r--gnu/packages/rust-apps.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 6d97e289c2..e84528dff2 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1129,6 +1129,57 @@ classic Web2C implementation of TeX and uses the TeXLive distribution
of support files.")
(license license:expat)))
+(define-public treefmt
+ (package
+ (name "treefmt")
+ (version "0.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "treefmt" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1rarg6rffzl1cf6r167h9p14wr696kwnzr85kwbdy7x7x5zpj5li"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1) ("rust-console" ,rust-console-0.13)
+ ("rust-directories" ,rust-directories-3)
+ ("rust-filetime" ,rust-filetime-0.2)
+ ("rust-globset" ,rust-globset-0.4)
+ ("rust-ignore" ,rust-ignore-0.4)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-path-clean" ,rust-path-clean-0.1)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-sha-1" ,rust-sha-1-0.9)
+ ("rust-structopt" ,rust-structopt-0.3)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-toml" ,rust-toml-0.5)
+ ("rust-which" ,rust-which-4))
+ #:cargo-development-inputs
+ (("rust-criterion" ,rust-criterion-0.3))))
+ (home-page "https://numtide.github.io/treefmt")
+ (synopsis "Command-line application to format the code tree")
+ (description
+ "This application provides a way to unify the formatting process of the
+codebase. It is nice for large code trees where using multiple formatters are
+common. @command{treefmt} comes with the following features.
+
+@itemize @bullet
+@item Unified CLI and output.
+@item Runs formatters in parallel.
+@item Cache changed files for performance.
+@end itemize
+
+The application does have some design decisions to keep in mind.
+
+@itemize @bullet
+@item The source code is kept under version control, making it possible to revert and check changes.
+@item Only one formatter per file, making outputs idempotent.
+@end itemize")
+ (license license:expat)))
+
(define-public hex
(package
(name "hex")