Skip to content

Commit 108ee60

Browse files
authored
Update main.rs
1 parent 1e6614d commit 108ee60

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

source-code/src/main.rs

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ mod db;
66
mod deb;
77
mod download;
88
mod fs_install;
9+
mod log;
910
mod package;
1011
mod solver;
1112
mod ui;
@@ -15,24 +16,30 @@ use cli::{parse_args, Command};
1516

1617
#[tokio::main]
1718
async fn main() {
19+
// Log every invocation
20+
let argv: Vec<String> = std::env::args().skip(1).collect();
21+
log::session_start();
22+
log::cmd(&argv);
23+
1824
if let Err(e) = run().await {
19-
ui::fatal(&format!("{:#}", e));
25+
let msg = format!("{:#}", e);
26+
log::error(&msg);
27+
ui::fatal(&msg);
2028
std::process::exit(1);
2129
}
2230
}
2331

2432
async fn run() -> Result<()> {
2533
let cmd = parse_args()?;
2634

27-
// Commands that touch the system need root
2835
let needs_root = matches!(
2936
&cmd,
3037
Command::Install { .. }
31-
| Command::Remove { .. }
32-
| Command::Upgrade { .. }
33-
| Command::Update
34-
| Command::Clean
35-
| Command::Autoremove { .. }
38+
| Command::Remove { .. }
39+
| Command::Upgrade { .. }
40+
| Command::Update
41+
| Command::Clean
42+
| Command::Autoremove { .. }
3643
);
3744

3845
if needs_root && !is_root() {
@@ -44,36 +51,33 @@ async fn run() -> Result<()> {
4451

4552
match cmd {
4653
Command::Install { packages, assume_yes, no_recommends } =>
47-
cli::cmd_install(&packages, assume_yes, no_recommends).await,
54+
cli::cmd_install(&packages, assume_yes, no_recommends).await,
4855
Command::Remove { packages, assume_yes, purge } =>
49-
cli::cmd_remove(&packages, assume_yes, purge).await,
56+
cli::cmd_remove(&packages, assume_yes, purge).await,
5057
Command::Update =>
51-
cli::cmd_update().await,
58+
cli::cmd_update().await,
5259
Command::Upgrade { assume_yes } =>
53-
cli::cmd_upgrade(assume_yes).await,
60+
cli::cmd_upgrade(assume_yes).await,
5461
Command::Autoremove { assume_yes } =>
55-
cli::cmd_autoremove(assume_yes).await,
62+
cli::cmd_autoremove(assume_yes).await,
5663
Command::Search { query, installed } =>
57-
cli::cmd_search(&query, installed).await,
64+
cli::cmd_search(&query, installed).await,
5865
Command::Info { package } =>
59-
cli::cmd_info(&package).await,
66+
cli::cmd_info(&package).await,
6067
Command::List { installed, upgradeable, available } =>
61-
cli::cmd_list(installed, upgradeable, available).await,
68+
cli::cmd_list(installed, upgradeable, available).await,
6269
Command::Clean =>
63-
cli::cmd_clean().await,
70+
cli::cmd_clean().await,
6471
Command::History =>
65-
cli::cmd_history().await,
72+
cli::cmd_history().await,
6673
Command::Version => { cli::print_version(); Ok(()) }
67-
Command::Help => { cli::print_help(); Ok(()) }
74+
Command::Help => { cli::print_help(); Ok(()) }
6875
}
6976
}
7077

7178
fn is_root() -> bool {
72-
// Works on Linux/macOS; on Windows always true for testing
7379
#[cfg(unix)]
74-
{
75-
unsafe { libc::getuid() == 0 }
76-
}
80+
{ unsafe { libc::getuid() == 0 } }
7781
#[cfg(not(unix))]
7882
{ true }
7983
}

0 commit comments

Comments
 (0)