# This file is part of OpenMediaVault.
#
# @license   http://www.gnu.org/licenses/gpl.html GPL Version 3
# @author    Volker Theile <volker.theile@openmediavault.org>
# @copyright Copyright (c) 2009-2025 Volker Theile
#
# OpenMediaVault is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# OpenMediaVault 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 OpenMediaVault. If not, see <http://www.gnu.org/licenses/>.

# Links:
# https://github.com/scop/bash-completion

_omv-salt()
{
	local cur words
	_init_completion || return

	case ${words[1]} in
	deploy)
		case ${words[2]} in
		run)
			COMPREPLY=( $( compgen -W "--append-dirty $( command omv-salt deploy list \
			 	2>/dev/null )" -- "$cur" ) )
			return 0
			;;
		list)
			return 0
			;;
		list-dirty)
			return 0
			;;
		*)
			COMPREPLY=( $( compgen -W "list run" -- "$cur" ) )
			return 0
			;;
		esac
		;;
	stage)
		case ${words[2]} in
		run)
			COMPREPLY=( $( compgen -W "$( command omv-salt stage list \
				2>/dev/null )" -- "$cur" ) )
			return 0
			;;
		list)
			return 0
			;;
		*)
			COMPREPLY=( $( compgen -W "list run" -- "$cur" ) )
			return 0
			;;
		esac
		;;
	*)
		COMPREPLY=( $( compgen -W "deploy stage" -- "$cur" ) )
		return 0
		;;
	esac
} &&
complete -F _omv-salt omv-salt
