Skip to content

Extensions

Richard Hajek edited this page Aug 14, 2019 · 5 revisions

Extensions in Overseer are just scripts that are located in /etc/overseer/scripts/extensions which are ran each time Overseer ticks (Roughly once a minute)

InfluxDB

You can upload Overseer data into InfluxDB with the following script:

#!/usr/bin/bash

# Config

ADDRESS='localhost:8086'
DB='overseer'

# Code
TIMESTAMP=$(date +%s)000000000

for activity in /etc/overseer/activities/*; do

	ACT_NAME=`basename $activity`
	ACT_NAME="${ACT_NAME%.*}"

	ACTIVE=0

	if [ -L "/etc/overseer/status/$ACT_NAME" ]
	then
		ACTIVE=1
	fi

	curl -i -XPOST "http://$ADDRESS/write?db=$DB" --data-binary "active,activity=$ACT_NAME value=$ACTIVE $TIMESTAMP"
done

for activity in /etc/overseer/trackers/*; do
	TIMEUSED=$(cat $activity)
	ACT_NAME=`basename $activity`
	curl -i -XPOST "http://$ADDRESS/write?db=$DB" --data-binary "timeTracked,activity=$ACT_NAME value=$TIMEUSED $TIMESTAMP"
done

for activity in /etc/overseer/reverse-trackers/*; do
	TIMELEFT=$(cat $activity)
	ACT_NAME=`basename $activity`
	curl -i -XPOST "http://$ADDRESS/write?db=$DB" --data-binary "timeLeft,activity=$ACT_NAME value=$TIMELEFT $TIMESTAMP"
done

Change ADDRESS and DB to make it work with your DB.

SSH libnotify notifications

You might want to get notifications on your desktop about the progress of activity's time. You can achieve that with this script:

#!/usr/bin/bash

# CONFIG

ENABLED_PATH="/etc/overseer/enabled"
TRACKERS_PATH="/etc/overseer/trackers"

WARN_THRESHOLD=300 # 300 sec, 5 minutes

SSH_USER="ENTER USER HERE"
SSH_IP="ENTER IP HERE"
SSH_IDENTITY="ENTER PATH TO IDENTITY FILE HERE"

# CODE
set -euo pipefail

MESSAGES=`echo "You are running out of time on following activities:\n"`
SEND=0

for activity in $ENABLED_PATH/*
do
        [ -e "$activity" ] || continue

        activity=$(basename -- "$activity")

        TIMELEFT=`cat $TRACKERS_PATH/$activity`

        if [[ "$WARN_THRESHOLD" -gt "$TIMELEFT" ]]
        then
                SEND=1
                MESSAGES+=`echo "$activity $TIMELEFT seconds left\n"`
        fi
done


if [ "$SEND" -eq 1 ]
then
        printf "$MESSAGES"
        ssh $SSH_USER@$SSH_IP -i $SSH_IDENTITY "notify-send Overseer \"$MESSAGES\""
fi

Change your CONFIG accordingly. Make sure you have notify-send available on your target desktop