diff options
Diffstat (limited to 'status')
-rwxr-xr-x | status | 192 |
1 files changed, 0 insertions, 192 deletions
@@ -1,192 +0,0 @@ -#!/bin/bash -# -# Check the overall status of your work. -# - -# Parameters -BASENAME="`basename $0`" - -# Usage -function status_usage { - echo "usage: $BASENAME [-l|--long] [-d|--delay N] [project]" - - if [ -z "$1" ]; then - exit 1 - else - exit $1 - fi -} - -# See https://stackoverflow.com/questions/2721946/cross-platform-getopt-for-a-shell-script#4300224 -function status_options { - getopt -T > /dev/null - if [ $? -eq 4 ]; then - # GNU enhanced getopt is available - ARGS=`getopt --name "$BASENAME" --long loop,delay: --options ld: -- "$@"` - else - # Original getopt is available (no long option names, no whitespace, no sorting) - ARGS=`getopt ld: "$@"` - fi - - if [ $? -ne 0 ]; then - echo "$BASENAME: usage error" >&2 - status_usage 2 - fi - - eval set -- $ARGS - - while [ $# -gt 0 ]; do - case "$1" in - l|--loop) - LOOP="yes";; - d|--delay) - DELAY="$2" - shift;; - --) - shift - break;; - *) - status_usage - ;; - esac - shift - done - - if [ $# -gt 0 ]; then - PROJECT="$1" - shift - fi -} - -# Calculate timestamp delta from a file -function status_file_changed_delta { - local file="$1" - - if [ -z "$file" ] || [ ! -e "$file" ]; then - echo 0 - fi - - local file_timestamp="`stat -c '%Z' $file`" - local timestamp="`date +%s`" - - echo $(( timestamp - file_timestamp )) -} - -# Run command if a file is older than a given number of seconds -function status_run_if_file_older_than { - local file="$1" - local interval="$2" - local run="0" - - shift 2 - - # Run command if there's still no file to test - if [ ! -e "$file" ]; then - run="1" - else - local age="`status_file_changed_delta $file`" - local interval="3600" - - # Run command only when file is older or equal the interval - if (( $age >= $interval )); then - run="1" - fi - fi - - # Run if criteria matches - if [ "$run" == "1" ]; then - $* - fi -} - -# Run status -function status_run { - if [ ! -z "$PROJECT" ]; then - # Check the status of the given project - cd $PROJECT &> /dev/null && git status - elif git status &> /dev/null; then - # Check the status of the current project - mr status - else - # Ensure we are in the home folder - cd - - # Check your reminders - if which remind &> /dev/null && [ -e "$HOME/.reminders" ]; then - remind ~/.reminders | grep -iv '^no reminders.$' # | tr '[:upper:]' '[:lower:]' - fi - - # Update your mrconfig and check all registered repositories - if which mr &> /dev/null; then - local mrconfig="$HOME/.custom/mrconfig-automatic" - - status_run_if_file_older_than $mrconfig 3600 mrconfig-updater - - # Pipe through cat so we don't have to deal with mr's dynamic output weirdness - #mr -m status | cat - - # Replace eventual "/mnt/crypt/home/$USER" with "~/" from output - # Piping through sed also handles mr's dynamic output weirdness - mr -m status | sed -e "s|/mnt/crypt/home/$USER/|~/|" -e "s|$HOME|~|" - fi - - # Use this as an opportunity to save our configs - if which git-config-save &> /dev/null; then - git config-save --sometimes &> /dev/null - fi - - # Check your TODO lists, filtering only important tasks - # Convention here is to use uppercase "IMPORTANT", to be explicit and avoid false positives - todo list IMPORTANT - - # Collected items that need to be moved somewhere else - #collector count - collector list - - # Check if you have mails to send - postponed - - # Check unread mails - unread-mails - - # Alarms set - #xalarm list - - # Check for spool files - if [ -e "$HOME/temp/log/spool.md" ] && [ "`wc -l $HOME/temp/log/spool.md | cut -d ' ' -f 1`" != "0" ]; then - echo "Spool file not empty: $HOME/temp/log/spool.md" - fi - - # Check if are dangling downloaded files - if [ -e "$HOME/load" ] && [ ! -z "`ls -1 ~/load/`" ]; then - # Print a newline if needed depending of the output of the previous commands - if [ ! -z "`postponed`" ] || [ ! -z "`unread-mails`" ] || [ ! -z "`collector list`" ]; then - echo "" - fi - - echo "Dangling files at ~/load:" - echo "" - ls -lh ~/load/ - fi - fi -} - -# Options -status_options $@ - -# Dispatch -if [ "$LOOP" == "yes" ]; then - PROJECT="" - - if [ -z "$DELAY" ]; then - DELAY="60" - fi - - while true; do - clear - status_run - sleep $DELAY - done -else - status_run -fi |