about summary refs log tree commit diff
path: root/Completion/Solaris/Command/_svccfg
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Solaris/Command/_svccfg')
-rw-r--r--Completion/Solaris/Command/_svccfg58
1 files changed, 58 insertions, 0 deletions
diff --git a/Completion/Solaris/Command/_svccfg b/Completion/Solaris/Command/_svccfg
new file mode 100644
index 000000000..59f275f26
--- /dev/null
+++ b/Completion/Solaris/Command/_svccfg
@@ -0,0 +1,58 @@
+#compdef svccfg
+
+_svccfg() {
+	local context state line subcmds
+
+	subcmds=( apply extract import validate export inventory delete addpropvalue delpropvalue )
+
+	if [[ $service == "svccfg" ]]; then
+		_arguments -s \
+			'-?[Help]' \
+			'-v[Verbose]' \
+			'-s[FMRI on which to operate]:fmri:_svcs_fmri -c' \
+			- set1 \
+			'-f[Read commands from file]:command file:_files' \
+			- set2 \
+			'*::command:->subcmd' && return 0
+
+		if (( CURRENT == 1 )); then
+			_wanted commands expl 'svccfg subcommand' compadd -a subcmds
+			return
+		fi
+		service="$words[1]"
+		curcontext="${curcontext%:*}=$service:"
+	fi
+
+	case $service in
+	(import)
+		_arguments \
+			'-V[Verify property updates]' \
+			':file:_files'
+		;;
+
+	(apply|validate|inventory)
+		_files
+		;;
+
+	(export)
+		_svcs_fmri -c
+		;;
+
+	(delete)
+		_arguments \
+			'-f[Force deletion if online or degraded]' \
+			'*:FMRI:_svcs_fmri -c'
+		;;
+
+	(extract)
+		;;
+
+	(*)
+		_message "unknown svccfg subcommand: $service"
+		;;
+	esac
+}
+
+_svccfg "$@"
+
+# vi:tw=0