#!/usr/bin/env bash

if [ -z "$1" ]; then
    echo "Usage: compress <file_or_directory>"
    return 1
fi

if [ ! -e "$1" ]; then
    echo "'$1' is not a valid file or directory"
    return 1
fi

format=$(printf "\ntar.gz\ntar.bz2\nzip\n7z\nbz2\nrar\ntar.xz\ntgz\n" | \
    fzf --header="Select compression format:" --height=50% --reverse --border --prompt='🔍 ')

case "$format" in
    tar.gz)  tar czf "$1.tar.gz" "$1" ;;
    tar.bz2) tar cjf "$1.tar.bz2" "$1" ;;
    zip)     zip -r "$1.zip" "$1" ;;
    7z)      7z a "$1.7z" "$1" ;;
    bz2)     bunzip2 "$1" ;;
    rar)     rar a "$1.rar" "$1" ;;
    tar.xz)  tar cJf "$1.tar.xz" "$1" ;;
    tgz)     tar czf "$1.tgz" "$1" ;;
    *)       echo "No valid format selected" ;;
esac
&title=compress