From 9d95d60184c2f9c2737e6903ed1b45cb2783d7c7 Mon Sep 17 00:00:00 2001
From: Michael Hanson <hansonorders@verizon.net>
Date: Mon, 8 Aug 2011 22:44:56 +0000
Subject: linhes-scripts: Add login check to idle.sh. Ref #755

---
 abs/core/linhes-scripts/PKGBUILD |  4 ++--
 abs/core/linhes-scripts/idle.sh  | 21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD
index 076bac7..f3204b1 100644
--- a/abs/core/linhes-scripts/PKGBUILD
+++ b/abs/core/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-scripts
 pkgver=7
-pkgrel=4
+pkgrel=5
 pkgdesc="Various scripts that help to make LinHES, LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -74,7 +74,7 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5'
          '3b776bbff68906ddc2f62b7e0dde3fe4'
          '15f3143d2b1369da431e4268029aba40'
          '3d0adf26280cde55a0c47188fff34826'
-         '93aaa2940e33ec9ebb305b839ac46a3e'
+         'c5f55f7fb02e8e7aed62192363c2c201'
          'b2c3dd48a4abb976eda2d5fbf22a173a'
          'b527b01d119d3bc33b8fa69bdf1082bb'
          'c537c44156d8404016cc4b405b092d45'
diff --git a/abs/core/linhes-scripts/idle.sh b/abs/core/linhes-scripts/idle.sh
index f95b9fa..3ad8135 100755
--- a/abs/core/linhes-scripts/idle.sh
+++ b/abs/core/linhes-scripts/idle.sh
@@ -1,11 +1,12 @@
 #!/bin/bash
 
 usage () {
-    echo "Usage: $0 [-h] [-s] [-t <minutes_needed>]"
+    echo "Usage: $0 [-h] [-s] [-t <minutes_needed>] [-l] [-v]"
     echo
     echo "-h - Print this help/usage message and quit"
     echo "-s - Run silently (default is verbose)"
     echo "-t - Minutes of idle time needed (default is 20)"
+    echo "-l - Check for user logins (default: false - do not check)"
     echo "-v - Be more verbose for debugging"
     echo
     echo "Silent mode is recommended for use in cron jobs or scripts."
@@ -22,14 +23,16 @@ mysql_cmd () {
 
 # Command line argument handling
 VERBOSE=1
+LOGINS=0
 TIME_BEFORE=20
 TIME_AFTER=5    # Only adjustable by editing here
 
-while getopts "hst:v" OPT ; do
+while getopts "hstl:v" OPT ; do
     case $OPT in
     h) usage 0 ;;
     s) VERBOSE=0 ;;
     t) TIME_BEFORE=$OPTARG ;;
+    l) LOGINS=1 ;;
     v) VERBOSE=2 ;;
     *) usage 1 ;;
     esac
@@ -91,7 +94,19 @@ if [ "$VERBOSE" -ge 2 ] ; then
             item += 1;
         }'
 fi
-activities=$(($BUSY + $SCHEMALOCK + $JOBS + $INUSE + $UPCOMING))
+
+if [ "$LOGINS" -ge 1 ] ; then
+  USERS=`/usr/bin/last | /bin/grep "still logged in"  | awk '{ print $1 }'`
+  if [ -n "$USERS" ] ; then
+    LOGINS=1
+    msg "The following user(s) are still logged in: ${USERS}"
+  else
+    LOGINS=0
+    msg "No user(s) are logged in..."
+  fi
+fi
+
+activities=$(($BUSY + $SCHEMALOCK + $JOBS + $INUSE + $UPCOMING + $LOGINS))
 msg
 if [ "$activities" -eq 0 ] ; then
     msg "System is idle"
-- 
cgit v0.12

