From 681d4620c56c53ba582c8a47c7da59dee900387b Mon Sep 17 00:00:00 2001 From: q3aql Date: Sun, 20 Oct 2024 13:58:17 +0200 Subject: [PATCH] Installer for ld-updr --- install.sh | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..1d5bac7 --- /dev/null +++ b/install.sh @@ -0,0 +1,95 @@ +#!/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 + +# Install script and cron +if [ -f "$(dirname $0)/lf-updr.sh" ] ; then + echo "* Installing /usr/bin/lf-updr" + cp -rf $(dirname $0)/lf-updr.sh /usr/bin/lf-updr + chmod +x /usr/bin/lf-updr +else + echo "* Error installing /usr/bin/lf-updr" + echo "* File $(dirname $0)/lf-updr.sh not found" + exit 1 +fi +if [ -f "$(dirname $0)/lf-updr" ] ; then + echo "* Installing /etc/cron.d/lf-updr" + cp -rf $(dirname $0)/lf-updr /etc/cron.d/lf-updr + chmod 644 /etc/cron.d/lf-updr +else + echo "* Error installing /etc/crond./lf-updr" + echo "* File $(dirname $0)/lf-updr not found" + 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