2024-04-24 05:11:12 +00:00
/*
Rust Arch Linux Updater
Copyright ( C ) 2024 Luke Harding < luke @ lukeh990 . io >
This program is free software : you can redistribute it and / or modify it under the terms of the GNU General Public License as published by the Free Software Foundation , either version 3 of the License , or ( at your option ) any later version .
This program is distributed in the hope that it will be useful , but WITHOUT ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for more details .
You should have received a copy of the GNU General Public License along with this program . If not , see < https ://www.gnu.org/licenses/>.
* /
2024-04-24 16:42:00 +00:00
/*
main . rs
This file contains the primary logic of the application
* /
2024-04-24 19:35:53 +00:00
use std ::io ;
2024-04-24 05:57:45 +00:00
mod pacman_install_check ;
2024-04-24 16:42:00 +00:00
mod shell_commands ;
2024-04-24 05:57:45 +00:00
fn main ( ) {
2024-04-24 05:11:12 +00:00
println! ( " {} " , copyright_notice ( ) ) ;
2024-04-24 05:57:45 +00:00
if let Err ( e ) = pacman_install_check ::run ( ) {
eprintln! ( " {} " , e ) ;
return ;
}
2024-04-24 19:35:53 +00:00
println! ( " Running pacman update " ) ;
if let Err ( e ) = shell_commands ::execute_in_sh ( " pacman -Syu " ) {
match e . kind ( ) {
io ::ErrorKind ::PermissionDenied = > {
eprintln! ( " Permission to use pacman has been denied. Please try again with sudo. " ) ;
return ;
}
_ = > {
eprintln! ( " {} " , e ) ;
return ;
}
}
}
2024-04-24 18:16:27 +00:00
2024-04-24 19:35:53 +00:00
println! ( " Move onto something else " ) ;
2024-04-24 05:11:12 +00:00
}
fn copyright_notice ( ) -> & 'static str {
2024-04-24 05:57:45 +00:00
" Rust Arch Linux Updater Copyright (C) 2024 Luke Harding <luke@lukeh990.io> \n This program comes with ABSOLUTELY NO WARRANTY \n This is free software, and you are welcome to redistribute it under certain conditions \n "
2024-04-24 05:11:12 +00:00
}