diff --git a/lf-updr.sh b/lf-updr.sh new file mode 100755 index 0000000..02b1fe9 --- /dev/null +++ b/lf-updr.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +#################################### +# lf-updr - Linux Firmware Updater # +# Author: q3aql@duck.com # +# License: GPLv2.0 # +#################################### + +# Repo Linux Firmware +repo_firmware="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" +branch="main" +dir_repo="/usr/lib/firmware" + +echo "** lf-updr - Linux Firmware Updater **" +echo "" + +# Check if process have root permissions +mkdir -p /etc/root &> /dev/null +administrador=$? +if [ ${administrador} -eq 0 ] ; then + rm -rf /etc/root +else + echo "* Root permissions are required" + exit +fi + +# Check dependencies +path_check="/usr/bin /usr/sbin/ /bin /sbin/ /usr/local/bin $HOME/.local/bin $(brew --prefix 2> /dev/null)/bin" +dependencies="git update-initramfs" +dependencies_found="" +dependencies_not_found="" +for checkPath in $path_check ; do + for checkDependencies in $dependencies ; do + if [ -f $checkPath/$checkDependencies ] ; then + dependencies_found="$dependencies_found $checkDependencies" + fi + done +done +for notFound in $dependencies ; do + check_found_one=$(echo $dependencies_found | grep " $notFound") + check_found_two=$(echo $dependencies_found | grep "$notFound ") + if_not_found="$check_found_one$check_found_two" + if [ -z "$if_not_found" ] ; then + dependencies_not_found="$dependencies_not_found $notFound" + fi +done +# Show if all tools are installed +if [ -z "$dependencies_not_found" ] ; then + echo > /dev/null +else + echo "* Some required tools are not installed:$dependencies_not_found" + exit 1 +fi + +# Update linux-firmware +echo "* Updating linux-firmware" +if [ -d ${dir_repo} ] ; then + cd ${dir_repo} + git pull origin ${branch} +fi + +# Run update-initramfs +echo "* Running update-initramfs" +if [ -x /usr/sbin/update-initramfs ]; then + /usr/sbin/update-initramfs -u -k all +fi