brewery
notashelf /
35ea43577618fa2e62dc7247aaf1d4b0ecba782f

beer

public

A terminal worth pouring time into

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/beer.git
src/main.rsRust49 lines1.1 KB
1
//! beer, a fast, software-rendered, Wayland-native terminal emulator.
2
3
use std::process::ExitCode;
4
5
use pound::Parse;
6
7
/// A fast, software-rendered, Wayland-native terminal emulator.
8
#[derive(Parse)]
9
#[pound(name = "beer", version = "0.0.0")]
10
struct Cli {
11
    /// Run as a daemon hosting multiple windows.
12
    #[pound(long)]
13
    server: bool,
14
}
15
16
fn main() -> ExitCode {
17
    init_logging();
18
    match run(Cli::parse()) {
19
        Ok(()) => ExitCode::SUCCESS,
20
        Err(err) => {
21
            tracing::error!("{err:#}");
22
            eprintln!("beer: {err:#}");
23
            ExitCode::FAILURE
24
        }
25
    }
26
}
27
28
fn init_logging() {
29
    use tracing_subscriber::{EnvFilter, fmt};
30
31
    let filter = EnvFilter::try_from_env("BEER_LOG")
32
        .or_else(|_| EnvFilter::try_from_default_env())
33
        .unwrap_or_else(|_| EnvFilter::new("warn"));
34
35
    fmt()
36
        .with_env_filter(filter)
37
        .with_writer(std::io::stderr)
38
        .init();
39
}
40
41
fn run(cli: Cli) -> anyhow::Result<()> {
42
    if cli.server {
43
        tracing::info!("starting beer server");
44
        todo!("server mode")
45
    }
46
47
    tracing::info!("starting beer");
48
    todo!("window mode")
49
}