CasperSecurity

Current Path : /etc/bash_completion.d/
Upload File :
Current File : //etc/bash_completion.d/apport_completion

# 
# Apport bash-completion
#
###############################################################################

# get available symptoms
_apport_symptoms ()
{
    local syms
    if [ -r /usr/share/apport/symptoms ]; then 
        for FILE in $(ls /usr/share/apport/symptoms); do
            # hide utility files and symptoms that don't have a run() function
            if [[ ! "$FILE" =~ ^_.* && -n $(egrep "^def run\s*\(.*\):" /usr/share/apport/symptoms/$FILE) ]]; then
                syms="$syms ${FILE%.py}"
            fi
        done
    fi
    echo $syms

}

# completion when used without parameters
_apport_parameterless ()
{
    local param
    # parameter-less completion
    # param= COMMAND parameters
    #        package names
    #        PIDs
    #        Symptoms
    #        any file
    param="$dashoptions \
           $( apt-cache pkgnames $cur 2> /dev/null ) \
           $( command ps axo pid | sed 1d ) \
           $( _apport_symptoms ) \
           $( compgen -G "${cur}*" )"
    COMPREPLY=( $( compgen -W "$param" -- $cur) )

}

# apport-bug ubuntu-bug completion
_apport-bug ()
{
    local cur dashoptions prev param

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}


    # available options
    dashoptions='-h --help --save -v --version --tag -w --window'

    case "$prev" in
    ubuntu-bug | apport-bug)
        case "$cur" in
        -*)
            # parameter completion
            COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )

        ;;
        *)
            # no parameter given
            _apport_parameterless 

        ;;
        esac

    ;;
    --save)
        COMPREPLY=( $( compgen -o default -G "$cur*" ) )
    
    ;;
    -w | --window)
        dashoptions="--save --tag"
        COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )
    ;;
    -h | --help | -v | --version | --tag)
        # standalone parameters
        return 0

    ;;
    *)
        # --save and --window make only sense once
        dashoptions="--tag"
        if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then
            dashoptions="--save $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then
            dashoptions="-w --window $dashoptions"
        fi

        case "$cur" in
        -*)
            # parameter completion
            COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )

        ;;
        *)
            _apport_parameterless 

        ;;
        esac

    ;;
    esac
}

# apport-cli completion
_apport-cli ()
{
    local cur dashoptions prev param

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}


    # available options
    dashoptions='-h --help -f --file-bug -u --update-bug -s --symptom \
                 -c --crash-file --save -v --version --tag -w --window'

    case "$prev" in
    apport-cli)
        case "$cur" in
        -*)
            # parameter completion
            COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )

        ;;
        *)
            # no parameter given
            _apport_parameterless 

        ;;
        esac

    ;;
    -f | --file-bug)
        param="-P --pid -p --package -s --symptom"
        COMPREPLY=( $( compgen -W "$param $(_apport_symptoms)" -- $cur) )

    ;;
    -s | --symptom)
        COMPREPLY=( $( compgen -W "$(_apport_symptoms)" -- $cur) )

    ;;
    --save)
        COMPREPLY=( $( compgen -o default -G "$cur*" ) )
    
    ;;
    -c | --crash-file)
        # only show *.apport *.crash files
        COMPREPLY=( $( compgen -G "${cur}*.apport"
                       compgen -G "${cur}*.crash" ) )

    ;;
    -w | --window)
        dashoptions="--save --tag"
        COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )
    ;;
    -h | --help | -v | --version | --tag)
        # standalone parameters
        return 0

    ;;
    *)
        dashoptions='--tag'

        # most parameters only make sense once
        if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then
            dashoptions="--save $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then
            dashoptions="-w --window $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--symptom.* || "${COMP_WORDS[*]}" =~ .*\ -s\ .* ]]; then
            dashoptions="-s --symptom $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--update.* || "${COMP_WORDS[*]}" =~ .*\ -u\ .* ]]; then
            dashoptions="-u --update $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--file-bug.* || "${COMP_WORDS[*]}" =~ .*\ -f\ .* ]]; then
            dashoptions="-f --file-bug $dashoptions"
        fi
        if ! [[ "${COMP_WORDS[*]}" =~ .*--crash-file.* || "${COMP_WORDS[*]}" =~ .*\ -c\ .* ]]; then
            dashoptions="-c --crash-file $dashoptions"
        fi

        # use same completion as if no parameter is given
        case "$cur" in
        -*)
            # parameter completion
            COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )

        ;;
        *)
            _apport_parameterless 

        ;;
        esac

    ;;
    esac
}

# apport-unpack completion
_apport-unpack ()
{
    local cur prev

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}

    case "$prev" in
    apport-unpack)
        # only show *.apport *.crash files
        COMPREPLY=( $( compgen -G "${cur}*.apport"
                       compgen -G "${cur}*.crash" ) )

    ;;
    esac
}

# apport-collect completion
_apport-collect ()
{
    local cur prev

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}

    case "$prev" in 
    apport-collect)
        COMPREPLY=( $( compgen -W "-p --package --tag" -- $cur) )

    ;;
    -p | --package)
        # list package names
        COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )

    ;;
    --tag)
        # standalone parameter
        return 0
    ;;
    *)
        # only complete -p/--package once
        if [[ "${COMP_WORDS[*]}" =~ .*\ -p.* || "${COMP_WORDS[*]}" =~ .*--package.* ]]; then
            COMPREPLY=( $( compgen -W "--tag" -- $cur) )
        else
            COMPREPLY=( $( compgen -W "-p --package --tag" -- $cur) )
        fi
        
    ;;
    esac
}

# bind completion to apport commands
complete -F _apport-bug -o filenames -o dirnames ubuntu-bug
complete -F _apport-bug -o filenames -o dirnames apport-bug
complete -F _apport-cli -o filenames -o dirnames apport-cli
complete -F _apport-unpack -o filenames -o dirnames apport-unpack
complete -F _apport-collect apport-collect

# vi: syntax=bash
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY