66mod deb;
77mod download;
88mod fs_install;
9+ mod log;
910mod package;
1011mod solver;
1112mod ui;
@@ -15,24 +16,30 @@ use cli::{parse_args, Command};
1516
1617#[ tokio:: main]
1718async 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
2432async 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
7178fn 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