From 4cb726546f679bdbab95a7e81937fe6d278578c0 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sun, 9 Feb 2020 08:57:52 -0500 Subject: [PATCH] cron fixes and simplifications --- bin/mailsync | 16 +++++++++------- bin/mw | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/bin/mailsync b/bin/mailsync index 2d82690..419848d 100755 --- a/bin/mailsync +++ b/bin/mailsync @@ -1,12 +1,6 @@ -#!/usr/bin/env sh +#!/bin/sh # Sync mail and give notification if there is new mail. -export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus -export DBUS_SESSION_BUS_ADDRESS -export DISPLAY=:0.0 -[ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store" - # Run only if user logged in (prevent cron errors) pgrep -u "${USER:=$LOGNAME}" >/dev/null || { echo "$USER not logged in; sync will not run."; exit ;} # Run only if not already running in other instance @@ -16,6 +10,14 @@ pgrep -x mbsync >/dev/null && { echo "mbsync is already running." ; exit ;} ping -q -c 1 1.1.1.1 > /dev/null || { echo "No internet connection detected."; exit ;} command -v notify-send >/dev/null || echo "Note that \`libnotify\` or \`libnotify-send\` should be installed for pop-up mail notifications with this script." +# Required to display notifications if run as a cronjob: +DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus +export DISPLAY=:0.0 + +# For individual configurations: +[ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store" +pgrep i3blocks >/dev/null && STATUSBAR="i3blocks" || STATUSBAR="dwmblocks" + # Settings are different for MacOS (Darwin) systems. if [ "$(uname)" = "Darwin" ]; then notify() { osascript -e "display notification \"$2 in $1\" with title \"You've got Mail\" subtitle \"Account: $account\"" && sleep 2 ;} diff --git a/bin/mw b/bin/mw index 576e90b..98f2b99 100755 --- a/bin/mw +++ b/bin/mw @@ -290,7 +290,7 @@ choosecron() { ! pgrep cron >/dev/null && echo "No cron manager running. Install read -r minnum printf "\033[0m" done - (crontab -l; echo "*/$minnum * * * * export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus; export DISPLAY=:0; . \$HOME/.profile; $(type mailsync | cut -d' ' -f3)") | crontab - && + (crontab -l; echo "*/$minnum * * * * $(type mailsync | cut -d' ' -f3)") | crontab - && echo "Cronjob added. Mail will sync every $minnum minutes. Be sure you have your cron manager running." fi ;}