From 3223d93cb3c77ab02aa0a35f2a8314e447cee9a4 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 9 Jul 2026 21:43:23 +0200 Subject: chore: Separate daemon, client, server, and lib into crates --- crates/client/src/main.rs | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 crates/client/src/main.rs (limited to 'crates/client/src/main.rs') diff --git a/crates/client/src/main.rs b/crates/client/src/main.rs new file mode 100644 index 00000000..12858140 --- /dev/null +++ b/crates/client/src/main.rs @@ -0,0 +1,76 @@ +#![forbid(unsafe_code)] +#![warn(clippy::pedantic, clippy::nursery, clippy::allow_attributes)] +#![expect( + clippy::missing_const_for_fn, // not 100% reliable + clippy::redundant_pub_crate, +)] +#![expect( + clippy::cast_possible_wrap, + clippy::cast_sign_loss, + clippy::cast_possible_truncation, + reason = "We should remove all of these. But it's just a lot of work in this code-base" +)] + +use clap::Parser; +use clap::builder::Styles; +use clap::builder::styling::{AnsiColor, Effects}; +use eyre::Result; + +use command::AtuinCmd; + +mod command; + +pub(crate) mod atuin_client; +pub(crate) mod atuin_common; +pub(crate) mod atuin_daemon; +pub(crate) mod atuin_history; +pub(crate) mod atuin_pty_proxy; +pub(crate) mod atuin_server; + +mod print_error; +mod sync; + +const VERSION: &str = env!("CARGO_PKG_VERSION"); +const SHA: &str = env!("GIT_HASH"); + +const LONG_VERSION: &str = concat!(env!("CARGO_PKG_VERSION"), " (", env!("GIT_HASH"), ")"); + +static HELP_TEMPLATE: &str = "\ +{before-help}{name} {version} +{author} +{about} + +{usage-heading} + {usage} + +{all-args}{after-help}"; + +const STYLES: Styles = Styles::styled() + .header(AnsiColor::Yellow.on_default().effects(Effects::BOLD)) + .usage(AnsiColor::Green.on_default().effects(Effects::BOLD)) + .literal(AnsiColor::Green.on_default().effects(Effects::BOLD)) + .placeholder(AnsiColor::Green.on_default()); + +/// Magical shell history +#[derive(Parser)] +#[command( + author = "Ellie Huxtable ", + version = VERSION, + long_version = LONG_VERSION, + help_template(HELP_TEMPLATE), + styles = STYLES, +)] +struct Atuin { + #[command(subcommand)] + atuin: AtuinCmd, +} + +impl Atuin { + fn run(self) -> Result<()> { + self.atuin.run() + } +} + +fn main() -> Result<()> { + Atuin::parse().run() +} -- cgit v1.3.1