Daemon for lf-updr

This commit is contained in:
q3aql 2024-10-27 10:38:55 +01:00
parent b50d13c2c0
commit 89dfe48604
4 changed files with 105 additions and 70 deletions

70
lf-updr Normal file → Executable file
View File

@ -1,4 +1,66 @@
@reboot root /usr/bin/lf-updr
0 8 * * * root /usr/bin/lf-updr
0 16 * * * root /usr/bin/lf-updr
0 0 * * * root /usr/bin/lf-updr
#!/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="/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

4
lf-updr.cron Normal file
View File

@ -0,0 +1,4 @@
@reboot root /usr/bin/lf-updr
0 8 * * * root /usr/bin/lf-updr
0 16 * * * root /usr/bin/lf-updr
0 0 * * * root /usr/bin/lf-updr

View File

@ -1,66 +0,0 @@
#!/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="/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

35
lf-updrd Executable file
View File

@ -0,0 +1,35 @@
#!/bin/bash
############################################
# lf-updrd - Linux Firmware Updater Daemon #
# Author: q3aql@duck.com #
# License: GPLv2.0 #
############################################
run_wait=30 # 30s
interval=28800 # 8h
# 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
# Run daemon
daemon=0
if [ -f /usr/bin/lf-updr ] ; then
echo "* Starting lf-updrd daemon"
sleep ${run_wait}
while [ ${daemon} -eq 0 ] ; do
/usr/bin/lf-updr
sleep ${interval}
done
else
echo "* Error: /usr/bin/lf-updr not found"
exit 1
fi