#!/bin/bash

# Function for autocompletion
_igmpgen_completion() {
    local cur prev opts igmp_types
    COMPREPLY=()   # Array variable storing the completions.
    cur="${COMP_WORDS[COMP_CWORD]}"  # Current word being completed.
    prev="${COMP_WORDS[COMP_CWORD-1]}"  # Previous word.

    # Options for igmpgen
    opts="-i -t -g -s -d -n"

    # Available IGMP packet types
    igmp_types="1.query 1.report 1.dvmrp 2.query 2.report 2.leave 3.report"

    case "${prev}" in
        -t)
            COMPREPLY=( $(compgen -W "${igmp_types}" -- ${cur}) )
            return 0
            ;;
    esac

    # If the previous word is an option requiring an argument, don't complete with options
    case "${prev}" in
        -i | -g | -s | -d | -n)
            return 0
            ;;
    esac

    # Default completion: suggest igmpgen options
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
}

# Attach the completion function to igmpgen command
complete -F _igmpgen_completion igmpgen