1use std::path::PathBuf;
2
3use rootcause::report;
4
5use crate::cmds::Cmd;
6
7mod cmds;
8
9#[ytil_sys::main]
10fn main() -> rootcause::Result<()> {
11 match Cmd::from_env()? {
12 Cmd::Help(help) => print!("{}", help.text()),
13 Cmd::SessionsList => cmds::sessions::list::run(&home_dir()?)?,
14 Cmd::SessionsListJson(args) => cmds::sessions::list::run_json(&args, &home_dir()?)?,
15 Cmd::CodexCompact => cmds::codex::compact::run()?,
16 Cmd::Tok(options) => cmds::tok::run(&options)?,
17 }
18 Ok(())
19}
20
21fn home_dir() -> rootcause::Result<PathBuf> {
22 std::env::var_os("HOME")
23 .map(PathBuf::from)
24 .ok_or_else(|| report!("HOME environment variable is not set"))
25}