diff --git a/lf-updr-install b/lf-updr-install new file mode 100755 index 0000000..19cf6e3 --- /dev/null +++ b/lf-updr-install @@ -0,0 +1,75 @@ +#!/bin/bash + +############################################## +# lf-updr - Linux Firmware Updater Installer # +# 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="/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 + +# Install linux-firmware +if [ -d ${dir_repo} ] ; then + echo "* Moving ${dir_repo} to ${dir_repo}.old" + rm -rf ${dir_repo}.old + mv ${dir_repo} ${dir_repo}.old +fi +echo "* Cloning linux-firmware to ${dir_repo}" +git clone ${repo_firmware} ${dir_repo} +error_cloning=$? +if [ ${error_cloning} -ne 0 ] ; then + echo "* Error: Fail cloning linux-firmware" + echo "* Rolling back ${dir_repo}.old" + mv ${dir_repo}.old ${dir_repo} + exit 1 +fi + +# Run update-initramfs +echo "* Running update-initramfs" +if [ -x /usr/sbin/update-initramfs ]; then + /usr/sbin/update-initramfs -u -k all +fi