#!/bin/sh -e # # reboot_required: determine if a reboot is required # # Copyright (C) 2008 Canonical Ltd. # Copyright (C) 2011-2014 Dustin Kirkland # # Authors: Dustin Kirkland # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . REBOOT_FLAG="/var/run/reboot-required" RELOAD_FLAG="$BYOBU_RUN_DIR/reload-required" POWERNAP_FLAG="/var/run/powernap/powersave" UNATTENDED_UPGRADE_FLAG="/var/run/unattended-upgrades.pid" __reboot_required_detail() { [ -e "$REBOOT_FLAG" ] && ls -alF "$REBOOT_FLAG" 2>&1 [ -e "$RELOAD_FLAG" ] && ls -alF "$RELOAD_FLAG" 2>&1 [ -e "$POWERNAP_FLAG" ] && ls -alF "$POWERNAP_FLAG" 2>&1 [ -e "$POWERNAP_FLAG" ] && cat "$POWERNAP_FLAG" 2>&1 } __reboot_required() { local status="$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/reboot_required" local livepatched=0 if [ -e "$UNATTENDED_UPGRADE_FLAG" ]; then color b R W; printf "$ICON_UPGRADE "; color --; fi while read line; do set -- ${line} case "$line" in kpatch_livepatch_*) color k G; printf "$ICON_LIVEPATCHED"; color -; livepatched=1 break ;; esac done < /proc/modules if [ -e "$REBOOT_FLAG" ]; then if [ "$livepatched" = "1" ]; then color k G; printf "$ICON_REBOOT"; color --; else color b k R; printf "$ICON_REBOOT"; color --; fi fi if [ -e "$RELOAD_FLAG" ]; then color b W; printf "<"; color -; color b b W; printf "F5"; color -; color b W; printf ">"; color -; printf " " elif [ -s "$status" ]; then rm -f "$status" fi if [ -e "$POWERNAP_FLAG" ]; then color b W; printf ".zZ"; color -- elif [ -s "$status" ]; then rm -f "$status" fi } # vi: syntax=sh ts=4 noexpandtab