#!/usr/bin/env zsh

echo 'Starting history size:'
ls -lh ~/.cache/zsh-histfile | cut -d " " -f5

hist=()

while IFS= read -r line; do
    if [[ $line == "./"* || $line == "/"* ]]; then
        hist+=($line)
    elif [[ $line != "histclean" ]]; then
        which $(echo $line | cut -d " " -f1) > /dev/null
        [[ $? == 0 ]] && hist+=($line)
    fi
done < "$XDG_CACHE_HOME"/zsh-histfile

echo -n "" > "$XDG_CACHE_HOME"/zsh-histfile
for item in "${hist[@]}"; do
    echo "$item" >> "$XDG_CACHE_HOME"/zsh-histfile
done

echo 'Ending history size:'
ls -lh ~/.cache/zsh-histfile | cut -d " " -f5
