#!/bin/bash
#-----------------------------------------------------------------------------------------------------------------------------------
#
# ISL: Image Stack Log
# 
# Copyright (C) 2026 Arnaud G. GIBERT
# mailto:arnaud@rx3.net
# 
# This is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; If not, see
# <https://www.gnu.org/licenses/>.
# 
#-----------------------------------------------------------------------------------------------------------------------------------
# -*- mode: shell; sh-basic-offset: 4; indent-tabs-mode: nil; -*-



_isl() {
    local cur prev opts sub_opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="--help -h --version -V --test -T --verbose -v --add -a --cat -c --dump -d --top -t"
    sub_opts="--reverse -r --inline -i --image -m"

    # Check if we're completing a sub-option
    case "${COMP_WORDS[1]}" in
        --cat|-c|--dump|-d|--top|-t)
            COMPREPLY=( $(compgen -W "${sub_opts}" -- "${cur}") )
            return 0
            ;;
    esac

    # Top-level completion
    case "${prev}" in
        --add|-a)
            COMPREPLY=( $(compgen -f -- "${cur}") )  # Complete with filenames/URLs
            return 0
            ;;
        --cat|-c|--dump|-d|--top|-t)
            COMPREPLY=( $(compgen -W "${sub_opts}" -- "${cur}") )
            return 0
            ;;
        *)
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}



complete -F _isl isl
