#!/usr/bin/env bash

disk_space() {
  u | awk '{print $5" "$6}'
}

before=$(disk_space)

yellow "Cleaning up the NixOS store"

profiles=(per-user/root/channels per-user/andreh/profile per-user/andreh/channels system)

for p in "${profiles[@]}"; do
    sudo nix-env --delete-generations old -p "/nix/var/nix/profiles/$p"
done

# Current profile, change when installing with =nix-env -iA nixpkgs.bsdgames=
nix-env --delete-generations old

nix-store --gc
nix-collect-garbage -d


yellow "Cleaning up Guix store"

guix gc


yellow "Cleaning up up the Trash and /tmp folders"

sudo rm -rf ~/.local/share/Trash/files/*
# https://askubuntu.com/a/609396
sudo find /tmp -type f -atime +10 -delete


yellow "Erasing docker images"

echo y | docker system prune -a
docker rmi "$(docker images -a -q)"
docker rm "$(docker ps -a -f status=exited -q)"

docker stop "$(docker ps -a -q)"
docker rm "$(docker ps -a -q)"

echo y | docker volume prune
echo y | docker container prune


# Source: https://www.reddit.com/r/emacs/comments/6wqfp3/notmuch_delete_mail/
yellow "Clean up deleted email files"
notmuch search --output=files --exclude=false tag:deleted | xargs -I{} rm "{}"
notmuch new

after=$(disk_space)

green "Done."
green "Disk space before and after:"
blue "  before: ${before}"
blue "  after:  ${after}"