random/OneDriveSync

27 lines
905 B
Bash

#!/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 sintan $0 "$@"
fi
notify() {
#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 "OneDrive sync" "Sync started..."
flock -n .onedrivesynclock rclone sync -c -L --log-file="/home/sintan/TempStorage/OneDriveSync.log" --log-level INFO "/home/sintan/TempStorage/OneDrive/" OneDrive:Syncs
notify "OneDrive sync" "Sync finished!"