#!/bin/sh
# This is a shell script that starts and stops the recollindex daemon
# depending on whether or not the power supply is plugged in. It should be
# called from the file ~/.config/autostart/recollindex.desktop.
#
# That is: make the script executable (chmod +x) and replace in
# recollindex.desk the line:
# Exec=recollindex -w 60 -m
# With
# Exec=/path/to/recoll_index_on_ac.sh
#
#
# By: The Doctor (drwho at virtadpt dot net)
# License: GPLv3
#
# Modifications by J.F Dockes
# - replaced "acpi" usage with "on_ac_power" which seems to be both
# more common and more universal.
# - Changed the default to be that we run recollindex if we can't determine
# power status (ie: on_ac_power not installed or not working: we're most
# probably not running on a laptop).
INDEXER="recollindex -w 60 -m"
ACPI=`which on_ac_power`
# If the on_ac_power script isn't installed, warn, but run anyway. Maybe
# this is not a laptop or not linux.
if test "x$ACPI" = "x" ; then
echo "on_ac_power utility not found. Starting recollindex anyway."
fi
while true; do
# Determine whether or not the power supply is plugged in.
if test "x$ACPI" != "x" ; then
on_ac_power
STATUS=$?
else
STATUS=0
fi
# Get the PID of the indexing daemon.
if test -f ~/.recoll/index.pid ; then
PID=`cat ~/.recoll/index.pid`
# Make sure that this is recollindex running. pid could have
# been reallocated
ps ax | egrep "^[ \t]*$PID " | grep -q recollindex || PID=""
fi
# echo "Recollindex pid is $PID"
if test $STATUS -eq 1 ; then
# The power supply is not plugged in. See if the indexing daemon is
# running, and if it is, kill it. The indexing daemon will not be
# started.
if test x"$PID" != x; then
kill $PID
fi
else
# The power supply is plugged in or we just don't know.
# See if the indexing daemon is running, and if it's not start it.
if test -z "$PID" ; then
$INDEXER
fi
fi
# Go to sleep for a while.
sleep 120
continue
done