#!/bin/sh -e # # custom: run the user's custom status scripts # # Copyright (C) 2009 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 . __custom_detail() { return } __custom() { local cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/custom" local i= output= for i in "$BYOBU_CONFIG_DIR/bin/"[0-9]*_*; do # Loop over custom scripts # Ensure executable [ -x "$i" ] || continue # Ignore vim backup files ending in ~ case "$i" in *~) continue ;; esac local now="$(date +%s)" local script=${i##*/} local freq=${script%%_*} freq=${freq#0} local lastrun= [ -r "$cache.$script.last" ] && read lastrun < "$cache.$script.last" || lastrun=0 local expiration=$(($lastrun+$freq)) if [ $now -ge $expiration ]; then "$i" > "$cache.$script" 2>/dev/null printf "%s\n" "${now}" > "$cache.$script.last" fi readfile < "$cache.$script" local str="${_RET}" case "$str" in *"$ESC{"*) # User has formatted the colors output="$output$(printf "$str")" ;; *) # Default coloring output="$output$str " ;; esac done [ -n "$output" ] || return printf "$output" | $BYOBU_SED ':a;N;$!ba;s/\n//g' } # vi: syntax=sh ts=4 noexpandtab