dotfiles/base/.config/systemd/user/autocategorize

71 lines
1.6 KiB
Bash
Executable File

#! /bin/sh
set -e
# Pull in user-dirs.dirs if it exists
userdirs="${XDG_CONFIG_DIR:-$HOME/.config}"/user-dirs.dirs
[ -f "$userdirs" ] && . "$userdirs"
# Obtain download directory from there, otherwise use default
downloaddir="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
documentsdir="${XDG_DOCUMENTS_DIR:-$HOME/Documents}"
picturesdir="${XDG_PICTURES_DIR:-$HOME/Pictures}"
videosdir="${XDG_VIDEOS_DIR:-$HOME/Videos}"
# Take loose crap out of the home folder
echo "Sorting away videos from homedir..."
find "$HOME" \
-maxdepth 1 \
-type f \
\( \
-iname "*.mov" -or \
-iname "*.webm" -or \
-iname "*.mkv" -or \
-iname "*.mp4" \
\) \
-print \
-exec mv {} "$videosdir" \;
echo "Sorting away pictures from homedir..."
find "$HOME" \
-maxdepth 1 \
-type f \
\( \
-iname "*.jpg" -or \
-iname "*.jpeg" -or \
-iname "*.gif" -or \
-iname "*.png" -or \
-iname "*.webp" \
\) \
-print \
-exec mv {} "$picturesdir" \;
# Sort out downloads
[ -e "$downloaddir" ] && {
# Sort out epubs
if [ -d ~/Books ]; then
echo "Sorting out books..."
find "$downloaddir" \
-type f \
\( \
-iname "*.epub" -or \
-iname "*.mobi" \
\) \
-print \
-exec mv {} ~/Books \;
fi
# Remove anything that's wicked old
echo "Removing ancient downloads..."
find "$downloaddir" \
-mtime +180 \
-print -delete
# Remove anything kinda old but really big
echo "Removing large downloads..."
find "$downloaddir" \
-mtime +30 -size +10M \
-print -delete
# Remove zips, but at a lower tolerance
echo "Removing old zips..."
find "$downloaddir" \
-mtime +30 -type f -iname "*.zip" \
-print -delete
}