atuin/atuin/Cargo.toml
Rain 95e9530dad
fix(build): make atuin compile on non-win/mac/linux platforms (#1825)
Hi!

I've been trying to get atuin set up on the illumos machine I built for work
@oxidecomputer, and I ran into a few issues which are fixed here:

1. The `clipboard` feature was only supported on Windows, Mac and Linux. I've
   added a platform gate for that.
2. The `atomic-write-file` crate needed an update to the version of `nix` --
   that is included.
3. As part of this, I found a [security
   bug](https://rustsec.org/advisories/RUSTSEC-2024-0020.html) in the whoami
   crate. The bug has been fixed upstream and I've included it.

   whoami 1.5.0 deprecates the `hostname` function, which produced some fresh
   warnings. While fixing the warnings I also took the liberty of doing some
   code rearrangement, adding a few functions that wrap some common operations. I
   didn't really know where to put those functions, so I created a new `utils`
   module for it. If you have a better place to put them, I'm happy to change
   the PR.

Feel free to make any changes to this PR if you like before landing it, or to
ask for review.

As a followup I'm also happy to set up a cross-compile build for atuin on
illumos. It's a bit harder to run tests in CI for illumos at the moment, but
I'm trying to get a project started up to make that happen in the future as
well.
2024-03-05 09:49:40 +00:00

96 lines
2.8 KiB
TOML

[package]
name = "atuin"
edition = "2021"
description = "atuin - magical shell history"
readme = "./README.md"
rust-version = { workspace = true }
version = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }.tar.gz"
bin-dir = "{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.deb]
maintainer = "Ellie Huxtable <ellie@elliehuxtable.com>"
copyright = "2021, Ellie Huxtable <ellie@elliehuxtable.com>"
license-file = ["LICENSE"]
depends = "$auto"
section = "utility"
[package.metadata.rpm]
package = "atuin"
[package.metadata.rpm.cargo]
buildflags = ["--release"]
[package.metadata.rpm.targets]
atuin = { path = "/usr/bin/atuin" }
[features]
default = ["client", "sync", "server", "clipboard", "check-update"]
client = ["atuin-client"]
sync = ["atuin-client/sync"]
server = ["atuin-server", "atuin-server-postgres", "tracing-subscriber"]
clipboard = ["cli-clipboard"]
check-update = ["atuin-client/check-update"]
[dependencies]
atuin-server-postgres = { path = "../atuin-server-postgres", version = "18.0.2", optional = true }
atuin-server = { path = "../atuin-server", version = "18.0.2", optional = true }
atuin-client = { path = "../atuin-client", version = "18.0.2", optional = true, default-features = false }
atuin-common = { path = "../atuin-common", version = "18.0.2" }
atuin-dotfiles = { path = "../atuin-dotfiles", version = "0.1.0" }
log = { workspace = true }
env_logger = "0.11.2"
time = { workspace = true }
eyre = { workspace = true }
directories = { workspace = true }
indicatif = "0.17.5"
serde = { workspace = true }
serde_json = { workspace = true }
crossterm = { version = "0.27", features = ["use-dev-tty"] }
unicode-width = "0.1"
itertools = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
interim = { workspace = true }
base64 = { workspace = true }
clap = { workspace = true }
clap_complete = "4.5.1"
clap_complete_nushell = "4.5.1"
fs-err = { workspace = true }
whoami = { workspace = true }
rpassword = "7.0"
semver = { workspace = true }
rustix = { workspace = true }
runtime-format = "0.1.3"
tiny-bip39 = "1"
futures-util = "0.3"
fuzzy-matcher = "0.3.7"
colored = "2.0.4"
ratatui = "0.25"
tracing = "0.1"
uuid = { workspace = true }
unicode-segmentation = "1.11.0"
serde_yaml = "0.9.32"
sysinfo = "0.30.5"
[target.'cfg(any(target_os = "windows", target_os = "macos", target_os = "linux"))'.dependencies]
cli-clipboard = { version = "0.4.0", optional = true }
[dependencies.tracing-subscriber]
version = "0.3"
default-features = false
features = ["ansi", "fmt", "registry", "env-filter"]
optional = true
[dev-dependencies]
tracing-tree = "0.3"