#!/usr/bin/env bash

# Set a custom VENV_DIR
#VENV_DIR="$HOME/myvenvs"

_pyv_comp() {
    if [ -z "$VENV_DIR" ] ; then
        if [ -n "$XDG_DATA_HOME" ] ; then
            VENV_DIR="$XDG_DATA_HOME/pyv"
        else
            [ -z "$HOME" ] && return 1
            VENV_DIR="$HOME/.local/share/pyv"
        fi
    fi

    if [ "${#COMP_WORDS[@]}" == "2" ]; then
        COMPREPLY=($(compgen -W "ls new rm enter exit" "${COMP_WORDS[1]}"))
    fi

    if [ "${#COMP_WORDS[@]}" -gt 2 ]; then
        venvs="$(for v in "$VENV_DIR"/* ; do
            if [ -d "$v" ] ; then
                printf '%s ' "${v##*/}"
            fi
        done)"
        venvs="${venvs% *}"
        COMPREPLY=($(compgen -W "$venvs" -- "${COMP_WORDS[-1]}"))
    fi
}

complete -F _pyv_comp pyv

# Copyright (C) 2024 Tavo