refactor: simpilfy packages management
This commit is contained in:
@@ -1,18 +1,18 @@
|
|||||||
libva
|
+libva
|
||||||
libva-utils
|
+libva-utils
|
||||||
gstreamer1-vaapi
|
+gstreamer1-vaapi
|
||||||
ffmpeg
|
+ffmpeg
|
||||||
mesa-dri-drivers
|
+mesa-dri-drivers
|
||||||
mesa-va-drivers-freeworld
|
+mesa-va-drivers-freeworld
|
||||||
mesa-vdpau-drivers-freeworld
|
+mesa-vdpau-drivers-freeworld
|
||||||
mesa-va-drivers-freeworld.i686
|
+mesa-va-drivers-freeworld.i686
|
||||||
mesa-vdpau-drivers-freeworld.i686
|
+mesa-vdpau-drivers-freeworld.i686
|
||||||
rocm-opencl
|
+rocm-opencl
|
||||||
rocminfo
|
+rocminfo
|
||||||
rocm-clinfo
|
+rocm-clinfo
|
||||||
rocm-hip
|
+rocm-hip
|
||||||
rocm-runtime
|
+rocm-runtime
|
||||||
rocm-smi
|
+rocm-smi
|
||||||
rocm-hip-devel
|
+rocm-hip-devel
|
||||||
amd-gpu-firmware
|
+amd-gpu-firmware
|
||||||
amd-ucode-firmware
|
+amd-ucode-firmware
|
||||||
@@ -1,42 +1,42 @@
|
|||||||
@development-tools
|
+@development-tools
|
||||||
@virtualization
|
+@virtualization
|
||||||
@multimedia
|
+@multimedia
|
||||||
@sound-and-video
|
+@sound-and-video
|
||||||
vim
|
+vim
|
||||||
papirus-icon-theme
|
+papirus-icon-theme
|
||||||
jetbrains-mono-fonts-all
|
+jetbrains-mono-fonts-all
|
||||||
rsms-inter-fonts
|
+rsms-inter-fonts
|
||||||
rsms-inter-vf-fonts
|
+rsms-inter-vf-fonts
|
||||||
fish
|
+fish
|
||||||
rustup
|
+rustup
|
||||||
git
|
+git
|
||||||
htop
|
+htop
|
||||||
btop
|
+btop
|
||||||
fastfetch
|
+fastfetch
|
||||||
inxi
|
+inxi
|
||||||
dejavu-fonts-all
|
+dejavu-fonts-all
|
||||||
liberation-fonts
|
+liberation-fonts
|
||||||
liberation-narrow-fonts
|
+liberation-narrow-fonts
|
||||||
google-noto-emoji-fonts
|
+google-noto-emoji-fonts
|
||||||
google-noto-color-emoji-fonts
|
+google-noto-color-emoji-fonts
|
||||||
google-noto-sans-fonts
|
+google-noto-sans-fonts
|
||||||
google-roboto*
|
+google-roboto*
|
||||||
mozilla-fira*
|
+mozilla-fira*
|
||||||
adobe-source-code*
|
+adobe-source-code*
|
||||||
adobe-source-sans-pro-fonts
|
+adobe-source-sans-pro-fonts
|
||||||
fontawesome-fonts-all
|
+fontawesome-fonts-all
|
||||||
google-droid-fonts-all
|
+google-droid-fonts-all
|
||||||
bitstream-vera-fonts-all
|
+bitstream-vera-fonts-all
|
||||||
fira-code-fonts
|
+fira-code-fonts
|
||||||
cascadia-fonts-all
|
+cascadia-fonts-all
|
||||||
intel-one-mono-fonts
|
+intel-one-mono-fonts
|
||||||
curl
|
+curl
|
||||||
gstreamer1-plugins-base
|
+gstreamer1-plugins-base
|
||||||
gstreamer1-plugins-good
|
+gstreamer1-plugins-good
|
||||||
gstreamer1-plugins-bad-free
|
+gstreamer1-plugins-bad-free
|
||||||
gstreamer1-plugins-good-extras
|
+gstreamer1-plugins-good-extras
|
||||||
gstreamer1-plugins-bad-free-extras
|
+gstreamer1-plugins-bad-free-extras
|
||||||
gstreamer1-plugins-ugly-free
|
+gstreamer1-plugins-ugly-free
|
||||||
gstreamer1-plugin-libav
|
+gstreamer1-plugin-libav
|
||||||
gstreamer1-plugin-openh264
|
+gstreamer1-plugin-openh264
|
||||||
https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
|
+https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
alsa-firmware
|
+alsa-firmware
|
||||||
alsa-sof-firmware
|
+alsa-sof-firmware
|
||||||
linux-firmware
|
+linux-firmware
|
||||||
realtek-firmware
|
+realtek-firmware
|
||||||
uhd-firmware
|
+uhd-firmware
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
gnome-firmware
|
+gnome-firmware
|
||||||
gnome-tweaks
|
+gnome-tweaks
|
||||||
gnome-extensions-app
|
+gnome-extensions-app
|
||||||
gnome-sound-recorder
|
+gnome-sound-recorder
|
||||||
gnome-usage
|
+gnome-usage
|
||||||
decibels
|
+decibels
|
||||||
fragments
|
+fragments
|
||||||
gnome-shell-extension-appindicator
|
+gnome-shell-extension-appindicator
|
||||||
gnome-shell-extension-dash-to-dock
|
+gnome-shell-extension-dash-to-dock
|
||||||
gnome-shell-extension-caffeine
|
+gnome-shell-extension-caffeine
|
||||||
gnome-shell-extension-gsconnect
|
+gnome-shell-extension-gsconnect
|
||||||
gnome-shell-extension-system-monitor
|
+gnome-shell-extension-system-monitor
|
||||||
|
|
||||||
# Unwanted packages
|
|
||||||
-rhythmbox
|
-rhythmbox
|
||||||
-transmission-gtk
|
-transmission-gtk
|
||||||
-gnome-tour
|
-gnome-tour
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
intel-media-driver
|
+intel-media-driver
|
||||||
libva-intel-driver
|
+libva-intel-driver
|
||||||
libva-intel-media-driver
|
+libva-intel-media-driver
|
||||||
libva
|
+libva
|
||||||
libva-utils
|
+libva-utils
|
||||||
gstreamer1-vaapi
|
+gstreamer1-vaapi
|
||||||
ffmpeg
|
+ffmpeg
|
||||||
intel-gpu-tools
|
+intel-gpu-tools
|
||||||
mesa-dri-drivers
|
+mesa-dri-drivers
|
||||||
mesa-va-drivers-freeworld
|
+mesa-va-drivers-freeworld
|
||||||
mesa-vdpau-drivers-freeworld
|
+mesa-vdpau-drivers-freeworld
|
||||||
mesa-va-drivers-freeworld.i686
|
+mesa-va-drivers-freeworld.i686
|
||||||
mesa-vdpau-drivers-freeworld.i686
|
+mesa-vdpau-drivers-freeworld.i686
|
||||||
intel-audio-firmware
|
+intel-audio-firmware
|
||||||
intel-gpu-firmware
|
+intel-gpu-firmware
|
||||||
iwlwifi-dvm-firmware
|
+iwlwifi-dvm-firmware
|
||||||
iwlwifi-mvm-firmware
|
+iwlwifi-mvm-firmware
|
||||||
39
src/main.rs
39
src/main.rs
@@ -235,32 +235,17 @@ fn manage_package(package_command: PackageCommand) -> Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn manage_list(list: String, remove: bool) -> Result<()> {
|
fn manage_list(list: String, remove: bool) -> Result<()> {
|
||||||
let packages = list
|
process_packages(&list, remove, '+')?;
|
||||||
.lines()
|
process_packages(&list, remove, '-')?;
|
||||||
.map(|line| line.trim())
|
Ok(())
|
||||||
.filter(|line| !line.is_empty() && !line.starts_with('#') && !line.starts_with('-'))
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
|
|
||||||
let mut dnf_cmd = std::process::Command::new("dnf");
|
|
||||||
if remove {
|
|
||||||
log::info!("Removing wanted list's packages...");
|
|
||||||
dnf_cmd.arg("remove");
|
|
||||||
} else {
|
|
||||||
log::info!("Installing wanted list's packages...");
|
|
||||||
dnf_cmd.arg("install").arg("--allowerasing");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
packages.iter().for_each(|package| {
|
fn process_packages(list: &String, remove: bool, prefix: char) -> Result<()> {
|
||||||
dnf_cmd.arg(package);
|
|
||||||
});
|
|
||||||
|
|
||||||
dnf_cmd.status()?;
|
|
||||||
|
|
||||||
let packages = list
|
let packages = list
|
||||||
.lines()
|
.lines()
|
||||||
.map(|line| line.trim())
|
.map(|line| line.trim())
|
||||||
.filter(|line| !line.is_empty() && !line.starts_with('#') && line.starts_with('-'))
|
.filter(|line| !line.is_empty() && line.starts_with(prefix))
|
||||||
.map(|line| line.trim_start_matches('-').trim())
|
.map(|line| line.trim_start_matches(prefix).trim())
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
if packages.is_empty() {
|
if packages.is_empty() {
|
||||||
@@ -269,19 +254,27 @@ fn manage_list(list: String, remove: bool) -> Result<()> {
|
|||||||
|
|
||||||
let mut dnf_cmd = std::process::Command::new("dnf");
|
let mut dnf_cmd = std::process::Command::new("dnf");
|
||||||
if remove {
|
if remove {
|
||||||
|
if prefix == '+' {
|
||||||
|
log::info!("Removing wanted list's packages...");
|
||||||
|
dnf_cmd.arg("remove");
|
||||||
|
} else {
|
||||||
log::info!("Re-installing unwanted list's packages...");
|
log::info!("Re-installing unwanted list's packages...");
|
||||||
dnf_cmd.arg("install").arg("--allowerasing");
|
dnf_cmd.arg("install").arg("--allowerasing");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if prefix == '+' {
|
||||||
|
log::info!("Installing wanted list's packages...");
|
||||||
|
dnf_cmd.arg("install").arg("--allowerasing");
|
||||||
} else {
|
} else {
|
||||||
log::info!("Removing unwanted list's packages...");
|
log::info!("Removing unwanted list's packages...");
|
||||||
dnf_cmd.arg("remove");
|
dnf_cmd.arg("remove");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
packages.iter().for_each(|package| {
|
packages.iter().for_each(|package| {
|
||||||
dnf_cmd.arg(package);
|
dnf_cmd.arg(package);
|
||||||
});
|
});
|
||||||
|
|
||||||
dnf_cmd.status()?;
|
dnf_cmd.status()?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user