Skip to content

Commit 0439c61

Browse files
authored
Merge pull request #478 from adamtuft/dropbox_status_segment
Add dropbox_status segment to show the status of your dropbox daemon
2 parents 97393ff + c3b6227 commit 0439c61

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Requirements for the lib to work are:
103103
## Segment Requirements
104104
Some segments have their own requirements. If you enable them in your theme, make sure all requirements are met for those.
105105

106+
* **dropbox_status.sh**: `dropbox-cli`
106107
* **github_notifications.sh**: `jq`
107108
* **ifstat.sh**: `ifstat` (there is a simpler segment `ifstat_sys.sh` not using ifstat)
108109
* **mailcount.sh**

segments/dropbox_status.sh

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# shellcheck shell=bash
2+
3+
# https://www.nerdfonts.com/cheat-sheet?q=nf-fa-dropbox
4+
TMUX_POWERLINE_SEG_DROPBOX_GLYPH_DEFAULT=$'\uf16b'
5+
# https://www.nerdfonts.com/cheat-sheet?q=nf-fa-upload
6+
TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH_DEFAULT=$'\uf093'
7+
# https://www.nerdfonts.com/cheat-sheet?q=nf-fa-download
8+
TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH_DEFAULT=$'\uf019'
9+
# https://www.nerdfonts.com/cheat-sheet?q=nf-fa-bookmark
10+
TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH_DEFAULT=$'\uf02e'
11+
# https://www.nerdfonts.com/cheat-sheet?q=nf-oct-sync
12+
TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH_DEFAULT=$'\uf46a'
13+
14+
IFS= read -r -d '' TMUX_POWERLINE_SEG_DROPBOX_SED_SCRIPT <<EOSED
15+
s/\(^.*\)\.\.\./\1/g
16+
s/Syncing \([0-9]\+\) \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH} \1/g
17+
s/Indexing \([0-9]\+\) \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH} \1/g
18+
s/Uploading \([0-9]\+\) \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH} \1/g
19+
s/Downloading \([0-9]\+\) \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH} \1/g
20+
s/Syncing \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH} 1/g
21+
s/Indexing \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH} 1/g
22+
s/Uploading \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH} 1/g
23+
s/Downloading \(.*\)$/\${TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH} 1/g
24+
EOSED
25+
26+
generate_segmentrc() {
27+
read -r -d '' rccontents <<EORC
28+
# The Dropbox glyph to use
29+
export TMUX_POWERLINE_SEG_DROPBOX_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_GLYPH_DEFAULT}"
30+
# Replace 'Uploading' in the status
31+
export TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH_DEFAULT}"
32+
# Replace 'Downloading' in the status
33+
export TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH_DEFAULT}"
34+
# Replace 'Indexing' in the status
35+
export TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH_DEFAULT}"
36+
# Replace 'Syncing' in the status
37+
export TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH_DEFAULT}"
38+
EORC
39+
echo "$rccontents"
40+
}
41+
42+
run_segment() {
43+
__process_settings
44+
if ! command -v dropbox-cli &>/dev/null; then
45+
printf "#[bg=colour124] %s ${TMUX_POWERLINE_SEG_DROPBOX_GLYPH} " "dropbox-cli not found"
46+
return 1
47+
fi
48+
status_text=$(dropbox-cli status \
49+
| sed "$TMUX_POWERLINE_SEG_DROPBOX_SED_SCRIPT" \
50+
| sed -z 's/\n/ /g;s/\(.*\) /\1/g' \
51+
| envsubst
52+
)
53+
if [ "${status_text}" = "Up to date" ]; then return 0; fi
54+
if [ "${status_text}" = "Dropbox isn't running!" ]; then
55+
printf "#[bg=colour124] %s ${TMUX_POWERLINE_SEG_DROPBOX_GLYPH} " "${status_text}"
56+
else
57+
printf "%s ${TMUX_POWERLINE_SEG_DROPBOX_GLYPH} " "${status_text}"
58+
fi
59+
return 0
60+
}
61+
62+
__process_settings() {
63+
if [ -z "$TMUX_POWERLINE_SEG_DROPBOX_GLYPH" ]; then
64+
export TMUX_POWERLINE_SEG_DROPBOX_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_GLYPH_DEFAULT}"
65+
fi
66+
if [ -z "$TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH" ]; then
67+
export TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH_DEFAULT}"
68+
fi
69+
if [ -z "$TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH" ]; then
70+
export TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH_DEFAULT}"
71+
fi
72+
if [ -z "$TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH" ]; then
73+
export TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH_DEFAULT}"
74+
fi
75+
if [ -z "$TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH" ]; then
76+
export TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH="${TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH_DEFAULT}"
77+
fi
78+
}

0 commit comments

Comments
 (0)