Compare commits

...

6 Commits

Author SHA1 Message Date
17406376ad Service file for lf-updrd 2024-10-27 10:52:40 +01:00
587319945a Rename lf-updr cron file 2024-10-27 10:52:24 +01:00
00c3ad91a1 Update uninstaller 2024-10-27 10:52:01 +01:00
39cbef4f1c Update installer 2024-10-27 10:51:43 +01:00
89dfe48604 Daemon for lf-updr 2024-10-27 10:38:55 +01:00
b50d13c2c0 Add tool for reinstall lf-updr 2024-10-27 10:25:11 +01:00
7 changed files with 181 additions and 24 deletions

View File

@ -69,27 +69,56 @@ if [ ${error_cloning} -ne 0 ] ; then
fi
# Install script and cron
if [ -f "$(dirname $0)/lf-updr.sh" ] ; then
if [ -f "$(dirname $0)/lf-updr" ] ; then
echo "* Installing /usr/bin/lf-updr"
cp -rf $(dirname $0)/lf-updr.sh /usr/bin/lf-updr
cp -rf $(dirname $0)/lf-updr /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
if [ -f "$(dirname $0)/lf-updrd" ] ; then
echo "* Installing /usr/sbin/lf-updrd"
cp -rf $(dirname $0)/lf-updrd /usr/sbin/lf-updrd
chmod +x /usr/sbin/lf-updrd
else
echo "* Error installing /usr/sbin/lf-updrd"
echo "* File $(dirname $0)/lf-updrd not found"
exit 1
fi
if [ -f "$(dirname $0)/lf-updr-install" ] ; then
echo "* Installing /usr/bin/lf-updr-install"
cp -rf $(dirname $0)/lf-updr-install /usr/bin/lf-updr-install
chmod +x /usr/bin/lf-updr-install
else
echo "* Error installing /usr/bin/lf-updr-install"
echo "* File $(dirname $0)/lf-updr-install not found"
exit 1
fi
if [ -f "$(dirname $0)/lf-updr.cron" ] ; then
echo "* Installing /etc/cron.d/lf-updr"
cp -rf $(dirname $0)/lf-updr.cron /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.cron not found"
exit 1
fi
if [ -f "$(dirname $0)/lf-updrd.service" ] ; then
echo "* Installing /etc/systemd/system/lf-updrd.service"
cp -rf $(dirname $0)/lf-updrd.service /etc/systemd/system/lf-updrd.service
chmod 644 /etc/systemd/system/lf-updrd.service
else
echo "* Error installing /etc/systemd/system/lf-updrd.service"
echo "* File $(dirname $0)/lf-updrd.service not found"
exit 1
fi
systemctl enable lf-updrd
# Run update-initramfs
echo "* Running update-initramfs"
if [ -x /usr/sbin/update-initramfs ]; then
/usr/sbin/update-initramfs -u -k all
fi
systemctl start lf-updrd

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

View File

@ -1,10 +1,10 @@
#!/bin/bash
####################################
# lf-updr - Linux Firmware Updater #
# Author: q3aql@duck.com #
# License: GPLv2.0 #
####################################
##############################################
# 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"
@ -52,11 +52,20 @@ else
exit 1
fi
# Update linux-firmware
echo "* Updating linux-firmware"
# Install linux-firmware
if [ -d ${dir_repo} ] ; then
cd ${dir_repo}
git pull origin ${branch}
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

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

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

11
lf-updrd.service Normal file
View File

@ -0,0 +1,11 @@
[Unit]
Description=Daemon for lf-updr
After=dbus.service
[Service]
ExecStart=/usr/sbin/lf-updrd
Type=simple
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@ -22,6 +22,13 @@ fi
# Remove files
echo "* Removing /usr/bin/lf-updr"
rm -rf /usr/bin/lf-updr
echo "* Removing /usr/bin/lf-updr-install"
rm -rf /usr/bin/lf-updr-install
echo "* Removing /etc/cron.d/lf-updr"
rm -rf /etc/cron.d/lf-updr
echo "* Removing /usr/sbin/lf-updrd"
rm -rf /usr/sbin/lf-updrd
systemctl disable lf-updrd
echo "* Removing /etc/systemd/system/lf-updrd.service"
rm -rf /etc/systemd/system/lf-updrd.service
echo "* Done"