diff options
author | Cody Hiar <codyfh@gmail.com> | 2017-04-20 19:37:10 -0600 |
---|---|---|
committer | Cody Hiar <codyfh@gmail.com> | 2017-04-20 19:37:10 -0600 |
commit | 2dd809781527976307b47a598887062047e202c9 (patch) | |
tree | 8b29daba2c1ef072f380ef530b7e7d9256e43eb3 /segments/mailcount.sh | |
parent | baeb698bb006193559fc5aa1901180a3ccc73b7a (diff) |
Making tmux configuration much easier to manage
Diffstat (limited to 'segments/mailcount.sh')
-rwxr-xr-x | segments/mailcount.sh | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/segments/mailcount.sh b/segments/mailcount.sh deleted file mode 100755 index 68029aa..0000000 --- a/segments/mailcount.sh +++ /dev/null @@ -1,204 +0,0 @@ -# Report mail count for your mailbox type - -TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX_DEFAULT="$HOME/.mail/inbox/new" -TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX_DEFAULT="${MAIL}" -TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC_DEFAULT="${HOME}/.mailcheckrc" -TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER_DEFAULT="gmail.com" -TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL_DEFAULT="5" - - -generate_segmentrc() { - read -d '' rccontents << EORC -# Mailbox type to use. Can be any of {apple_mail, gmail, maildir, mbox, mailcheck} -export TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE="" - -## Gmail -# Enter your Gmail username here WITH OUT @gmail.com.( OR @domain) -export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME="" -# Google password. Recomenned to use application specific password (https://accounts.google.com/b/0/IssuedAuthSubTokens) Leave this empty to get password from OS X keychain. -# For OSX users : MAKE SURE that you add a key to the keychain in the format as follows -# Keychain Item name : http://<value-you-fill-in-server-variable-below> -# Account name : <username-below>@<server-below> -# Password : Your password ( Once again, try to use 2 step-verification and application-specific password) -# See http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833 for more info. -export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD="" -# Domain name that will complete your email. For normal GMail users it probably is "gmail.com but can be "foo.tld" for Google Apps users. -export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER="${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER_DEFAULT}" -# How often in minutes to check for new mails. -export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL="${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL_DEFAULT}" - -## Maildir -# Path to the maildir to check. -export TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="${TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX_DEFAULT}" - -## mbox -# Path to the mbox to check. -export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="${TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX_DEFAULT}" - -## mailcheck -# Optional path to mailcheckrc -export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="${TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC_DEFAULT}" -EORC - echo "${rccontents}" -} - -__process_settings() { - if [ -z "$TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER" ]; then - export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER="${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER_DEFAULT}" - fi - if [ -z "$TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL" ]; then - export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL="${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL_DEFAULT}" - fi - - eval TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="$TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX" - if [ -z "$TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX" ]; then - export TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="${TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX_DEFAULT}" - fi - - eval TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="$TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX" - if [ -z "${TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX}" ]; then - export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="${TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX_DEFAULT}" - fi - - eval TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="$TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC" - if [ -z "${TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC}" ]; then - export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="${TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC_DEFAULT}" - fi - -} - -run_segment() { - __process_settings - - if [ -z "$TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE" ]; then - return 2 - fi - - local count - case "$TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE" in - "apple_mail") count=$(__count_apple_mail) ;; - "gmail") count=$(__count_gmail) ;; - "maildir") count=$(__count_maildir) ;; - "mbox") count=$(__count_mbox) ;; - "mailcheck") count=$(__count_mailcheck) ;; - *) - echo "Unknown mailbox type [${TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE}]"; - return 1 - esac - local exitcode="$?" - if [ "$exitcode" -ne 0 ]; then - return $exitcode - fi - - if [[ -n "$count" && "$count" -gt 0 ]]; then - echo "✉ ${count}" - fi - - return 0 -} - - -__count_apple_mail() { - count=$(${TMUX_POWERLINE_DIR_SEGMENTS}/mailcount_apple_mail.script) - echo "$count" -} - -__count_gmail() { - local tmp_file="${TMUX_POWERLINE_DIR_TEMPORARY}/gmail_count.txt" - local tmp_wgetrc="${TMUX_POWERLINE_DIR_TEMPORARY}/tmp_wgetrc.txt" - local override_passget="false" # When true a force reloaded will be done. - - # Create the cache file if it doesn't exist. - if [ ! -f "$tmp_file" ]; then - touch $tmp_file - override_passget=true - fi - - # Refresh mail count if the tempfile is older than $interval minutes. - let interval=60*$TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL - if shell_is_osx || shell_is_bsd; then - last_update=$(stat -f "%m" ${tmp_file}) - elif shell_is_linux; then - last_update=$(stat -c "%Y" ${tmp_file}) - fi - if [ "$(( $(date +"%s") - ${last_update} ))" -gt "$interval" ] || [ "$override_passget" == true ]; then - if [ -z "$TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD" ]; then # Get password from keychain if it isn't already set. - if shell_is_osx; then - __mac_keychain_get_pass "${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME}@${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER}" "$TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER" - else - echo "Implement your own sexy password fetching mechanism here." - return 1 - fi - fi - - # Check for wget before proceeding. - which wget 2>&1 > /dev/null - if [ $? -ne 0 ]; then - echo "This script requires wget." 1>&2 - return 1 - fi - - # Hide password from command line (visible with e.g. ps(1)). - echo -e "user=${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME}@${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER}\npassword=${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD}" > "$tmp_wgetrc" - mail=$(wget -q -O - https://mail.google.com/a/${TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER}/feed/atom --config "$tmp_wgetrc" | grep fullcount | sed 's/<[^0-9]*>//g') - rm "$tmp_wgetrc" - - if [ "$mail" != "" ]; then - echo $mail > $tmp_file - else - return 1 - fi - fi - - count=$(cat $tmp_file) - echo "$count" - return 0; -} - -__count_maildir() { - if [ ! -d "$TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX" ]; then - return 1 - fi - - count=$(ls "$TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX" | wc -l) - - # Fix for mac, otherwise whitespace is left in output - if shell_is_osx; then - count=$(echo "$count" | sed -e "s/^[ \t]*//") - fi - - echo "$count" - return 0; -} - -__count_mbox() { - if [ ! -f "${TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX}" ]; then - return 1 - fi - - # This matches the From_ line (see man 5 mbox) e.g. - # From noreply@github.com Sun Dec 2 03:52:25 2012 - # See https://github.com/erikw/tmux-powerline/pull/91#issuecomment-10926053 for discussion. - count=$(grep -c '^From [^[:space:]]\+ ... ... .. ..:..:.. ....$' ${TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX}) - - echo "$count" - return 0; -} - -__mac_keychain_get_pass() { - result="$(security 2>&1 > /dev/null find-internet-password -ga $1 -s $2)" - if [ $? -eq 0 ]; then - TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD=$(echo "$result" | sed -e 's/password: \"\(.*\)\"/\1/g') - return 0 - fi - return 1 -} - -__count_mailcheck() { - count=$(mailcheck -f ${TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC} | awk '{ if (/new/) { print $3; exit } else { print 0; exit } }') - if [ $? -eq 0 ]; then - echo "$count" - return 0 - fi - return 1; -} |