#!/bin/sh # For syncing some files with OneDrive # Assumes that the sync target is set up as OneDrive:Syncs in rclone if [ $(id -u) -eq 0 ]; then exec sudo -H -u $0 "$@" fi function notify-send2() { #Detect the name of the display in use local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)" #Detect the user using such display local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1) #Detect the id of the user local uid=$(id -u $user) sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send -a rclone -h string:desktop-entry:alacritty "$@" } notify-send2 "OneDrive sync" "Sync started..." flock -n .onedrivesynclock rclone sync -c -L --log-file=logfile --log-level INFO source OneDrive:Syncs notify-send2 "OneDrive sync" "Sync finished!"