[package] name = "fif" description = "A command-line tool for detecting and optionally correcting files with incorrect extensions." version = "0.3.4" authors = ["Lynnesbian "] edition = "2018" license = "GPL-3.0-or-later" rust-version = "1.43.0" # cached breaks on 1.42.0, i think it needs https://github.com/rust-lang/rust/pull/67642/ repository = "https://gitlab.com/Lynnesbian/fif" readme = "README.md" keywords = ["mime", "mimetype", "utilities", "tools"] categories = ["command-line-utilities"] exclude = [".idea/", "*.toml", "!Cargo.toml", "*.sh", "*.py", "*.yml", "*.md", ".mailmap", "pkg/"] #resolver = "2" #license-file = "LICENSE" [badges] maintenance = { status = "experimental" } [features] default = ["multi-threaded", "json"] multi-threaded = ["rayon"] infer-backend = ["infer"] xdg-mime-backend = ["xdg-mime"] json = ["serde", "serde_json"] [dependencies] walkdir = "2.3.2" log = "0.4.14" mime = "0.3.16" mime_guess = { package = "new_mime_guess", features = ["phf-map"], version = "3.0.0" } snailquote = "0.3.0" once_cell = "1.8.0" rayon = { version = "1.5.0", optional = true } exitcode = "1.1.2" cfg-if = "1.0.0" itertools = "0.10.0" serde = { version = "1.0", features = ["derive"], optional = true } serde_json = { version = "1.0", optional = true } [target.'cfg(not(unix))'.dependencies] xdg-mime = { version = "0.3.3", optional = true } infer = "0.5.0" [target.'cfg(unix)'.dependencies] xdg-mime = "0.3.3" infer = { version = "0.5.0", optional = true } [target.'cfg(not(all(target_endian = "big", target_pointer_width = "32")))'.dependencies] # the seemingly weird target constraint here is due to this: # https://github.com/bodil/smartstring/blob/v0.2.7/src/config.rs#L102-L104 # essentially, smartstring is intentionally blocked from compiling on 32-bit big endian archs, so our dependency on it # needs to be too. otherwise, fif won't work on platforms like powerpc, even though this dependency is the only # blocker -- fif runs just fine on powerpc without smartstring. or at least, just fine under qemu user-mode powerpc ~u0 # additionally, smartstring 0.2.8 requires rust >=1.46 (due to https://github.com/rust-lang/rust/issues/49146), and # 0.2.3 doesn't impl Display on its SmartString type. # so, we need at least 0.2.4 so we can println! strings, and at most 0.2.7 until we bump the MSRV to at least 1.46. # see https://github.com/bodil/smartstring/blob/master/CHANGELOG.md smartstring = "<= 0.2.7, >= 0.2.4" [dependencies.clap] # beta.4 requires rust >= 1.54.0 (and beta.3 was yanked) version = "=3.0.0-beta.2" default-features = false features = ["wrap_help", "color", "derive", "std"] [dependencies.env_logger] version = "0.9.0" default-features = false features = ["termcolor", "atty"] [dependencies.cached] version = "0.24.0" default-features = false [dev-dependencies] tempfile = "3.2.0" rand = "0.8.3" [profile.release] lto = "thin" # optimise dependencies, even when producing debug and test builds [profile.dev.package."*"] opt-level = 3 [profile.test.package."*"] opt-level = 3