Add a lightweight framework for running facter scripts that feed data into alfred every 5 minutes

This commit is contained in:
Gui Iribarren 2013-09-12 07:30:41 -03:00
parent 958704423e
commit 0a66a7a0c2
3 changed files with 20 additions and 8 deletions

View file

@ -12,7 +12,7 @@ include $(TOPDIR)/rules.mk
# #
PKG_NAME:=alfred PKG_NAME:=alfred
PKG_VERSION:=2013.3.0 PKG_VERSION:=2013.3.0
PKG_RELEASE:=0 PKG_RELEASE:=1
PKG_MD5SUM:=018ef6262cdd11e900af31d71a864b13 PKG_MD5SUM:=018ef6262cdd11e900af31d71a864b13
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

View file

@ -3,5 +3,6 @@ config 'alfred' 'alfred'
option mode 'master' option mode 'master'
option batmanif 'bat0' option batmanif 'bat0'
option start_vis '1' option start_vis '1'
option run_facters '1'
# REMOVE THIS LINE TO ENABLE ALFRED # REMOVE THIS LINE TO ENABLE ALFRED
option disabled '1' option disabled '1'

View file

@ -11,6 +11,7 @@ START=99
STOP=99 STOP=99
alfred_args="" alfred_args=""
vis_args="" vis_args=""
facters_dir="/etc/alfred"
pid_file_alfred="/var/run/alfred.pid" pid_file_alfred="/var/run/alfred.pid"
pid_file_vis="/var/run/vis.pid" pid_file_vis="/var/run/vis.pid"
enable=0 enable=0
@ -48,6 +49,8 @@ alfred_start()
append vis_args "-i $batmanif -s" append vis_args "-i $batmanif -s"
fi fi
config_get_bool run_facters "$section" run_facters 0
return 0 return 0
} }
@ -63,12 +66,19 @@ start()
SERVICE_PID_FILE="$pid_file_alfred" SERVICE_PID_FILE="$pid_file_alfred"
service_start /usr/sbin/alfred ${alfred_args} service_start /usr/sbin/alfred ${alfred_args}
if [ "$vis_enable" = "0" ]; then if [ "$vis_enable" = "1" ]; then
exit 0 echo "${initscript}: starting vis"
fi SERVICE_PID_FILE="$pid_file_vis"
echo "${initscript}: starting vis" service_start /usr/sbin/vis ${vis_args}
SERVICE_PID_FILE="$pid_file_vis" fi
service_start /usr/sbin/vis ${vis_args}
if [ "$run_facters" = "1" ]; then
if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then
echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron restart
fi
fi
} }
stop() stop()
@ -77,5 +87,6 @@ stop()
service_stop /usr/sbin/alfred service_stop /usr/sbin/alfred
SERVICE_PID_FILE="$pid_file_vis" SERVICE_PID_FILE="$pid_file_vis"
[ -x /usr/sbin/vis ] && service_stop /usr/sbin/vis [ -x /usr/sbin/vis ] && service_stop /usr/sbin/vis
sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root
/etc/init.d/cron restart
} }