From 86846e29ed3b865c3b8b61f772e041923ec4a288 Mon Sep 17 00:00:00 2001 From: toloveru Date: Sat, 8 Apr 2017 17:23:25 +0200 Subject: [PATCH] Improved install script --- install | 55 ++++++++++++++++++++++++++++++++++++++++++++--------- kernelcheck | 23 ++++++++++++---------- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/install b/install index 3c09469..4c8ad19 100755 --- a/install +++ b/install @@ -1,10 +1,47 @@ #!/bin/sh -printf "Copying files..\n" -sudo cp kernelcheck /usr/local/sbin/kernelcheck -sudo cp notify_all /usr/local/sbin/notify_all -printf "Adding hourly service to cron scheduler..\n" -(sudo crontab -l; echo "@hourly /usr/local/sbin/kernelcheck" ) | sudo crontab - -printf "Enabling cronie scheduler..\n" # Let me know if you use something else, and enable manually. -sudo systemctl start cronie.service -sudo systemctl enable cronie.service -printf "Installation complete.\n" + +if [ $EUID != 0 ] +then + printf "This script needs to be run as root.\n" + exit 1 +fi + +function install_arch_manjaro(){ + cp kernelcheck /usr/local/sbin/kernelcheck + cp notify_all /usr/local/sbin/notify_all + if ! hash crontab &>/dev/null + then + printf "Installing cronie command scheduler..\n" + pacman -S --noconfirm cronie &>/dev/null + fi + if hash systemctl &>/dev/null + then + if [ $(systemctl is-active cronie) == inactive ] + then + printf "Enabling cronie command scheduler..\n" + systemctl start cronie.service &>/dev/null + systemctl enable cronie.service &>/dev/null + fi + else + printf "You don't seem to be using systemd.. Please enable cronie manually.\n" + fi + if ! grep -Fxq "@hourly /usr/local/sbin/kernelcheck" /var/spool/cron/root 2>/dev/null + then + printf "Installing hourly service in crontab..\n" + (crontab -l 2>/dev/null; echo "@hourly /usr/local/sbin/kernelcheck" ) | crontab - + elif grep -Fxq "@hourly /usr/local/sbin/kernelcheck" /var/spool/cron/root + then + printf "Crontab entry found. Skipping..\n" + fi + printf "Installation complete.\n" +} + +if [ -f /etc/manjaro-release ] +then + printf "Installing for Manjaro Linux...\n" + install_arch_manjaro +elif [ -f /etc/arch-release ] +then + printf "Installing for Arch Linux...\n" + install_arch_manjaro +fi diff --git a/kernelcheck b/kernelcheck index 9d89d5b..f955812 100755 --- a/kernelcheck +++ b/kernelcheck @@ -54,20 +54,23 @@ then make modules_install &>/dev/null cp arch/$(uname -m)/boot/bzImage /boot/vmlinuz-$latest mkinitcpio -k $latest -g /boot/initramfs-$latest.img &>/dev/null - if [ "$(echo $(uname -r) | sed 's/ARCH//')" != "$(uname -r)" ] - then - /usr/local/sbin/notify_all "Kernel update tracker" "Removing the Arch distribution kernel.." --icon=dialog-information - pacman -R --noconfirm linux - elif [ "$(echo $(uname -r) | sed 's/MANJARO//')" != "$(uname -r)" ] - then - /usr/local/sbin/notify_all "Kernel update tracker" "Removing the Manjaro distribution kernel.." --icon=dialog-information - pacman -R --noconfirm linux - else + ## Uncomment this code block only if you really know what you are doing!! + ## It removes the Arch / Manjaro distribution kernel, and should only be done if you know how to recover from chroot! + + # if [ "$(echo $(uname -r) | sed 's/ARCH//')" != "$(uname -r)" ] + # then + # /usr/local/sbin/notify_all "Kernel update tracker" "Removing the Arch distribution kernel.." --icon=dialog-information + # pacman -R --noconfirm linux + # elif [ "$(echo $(uname -r) | sed 's/MANJARO//')" != "$(uname -r)" ] + # then + # /usr/local/sbin/notify_all "Kernel update tracker" "Removing the Manjaro distribution kernel.." --icon=dialog-information + # pacman -R --noconfirm linux + # else /usr/local/sbin/notify_all "Kernel update tracker" "Removing the current kernel.." --icon=dialog-information rm -f /boot/initramfs-$current.img rm -f /boot/vmlinuz-$current rm -rf /usr/lib/modules/$current - fi + # fi grub-mkconfig -o /boot/grub/grub.cfg &>/dev/null /usr/local/sbin/notify_all "Kernel update tracker" "New kernel installed\!" --icon=dialog-information elif [[ "$latest" == "$current" ]] && [[ ! -z $latest ]]