blob: 458937e9d244b8d61d17b53fbb2d5c919c68679c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#!/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
}
# 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 -v '^No reminders.$'
fi
# Update your mrconfig and check all registered repositories
if which mr &> /dev/null; then
# Pipe through cat so we don't have to deal with mr's dynamic output weirdness
#mrconfig-updater && mr -m status | cat
# Replace eventual "/mnt/crypt/home/$USER" with "~/" from output
# Piping through sed also handles mr's dynamic output weirdness
mrconfig-updater && mr -m status | sed -e "s|/mnt/crypt/home/$USER/|~/|" -e "s|$HOME|~|"
fi
# Check your TODO lists, filtering only important tasks
todo list important
# Check if you have mails to send
postponed
# Check unread mails
unread-mails
# Check if are dangling downloaded files
if [ -e "$HOME/load" ] && [ ! -z "`ls -1 ~/load/`" ]; then
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
|