refactor: simpilfy packages management

This commit is contained in:
2025-05-02 00:38:15 +02:00
parent ad6935b82c
commit bb92cb362c
6 changed files with 116 additions and 125 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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<()> {
process_packages(&list, remove, '+')?;
process_packages(&list, remove, '-')?;
Ok(())
}
fn process_packages(list: &String, remove: bool, prefix: char) -> Result<()> {
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))
.collect::<Vec<_>>(); .map(|line| line.trim_start_matches(prefix).trim())
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| {
dnf_cmd.arg(package);
});
dnf_cmd.status()?;
let packages = list
.lines()
.map(|line| line.trim())
.filter(|line| !line.is_empty() && !line.starts_with('#') && line.starts_with('-'))
.map(|line| line.trim_start_matches('-').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(())
} }