mirror of
				https://git.proxmox.com/git/systemd
				synced 2025-10-31 14:02:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #compdef hostnamectl                    -*- shell-script -*-
 | |
| # SPDX-License-Identifier: LGPL-2.1+
 | |
| 
 | |
| (( $+functions[_hostnamectl_set-hostname] )) ||
 | |
| _hostnamectl_set-hostname() {
 | |
|     if (( CURRENT <= 3 )); then
 | |
|         _message "new hostname"
 | |
|     else
 | |
|         _message "no more options"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| (( $+functions[_hostnamectl_set-icon-name] )) ||
 | |
| _hostnamectl_set-icon-name() {
 | |
|     if (( CURRENT <= 3 )); then
 | |
|         _message "new icon name"
 | |
|     else
 | |
|         _message "no more options"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| (( $+functions[_hostnamectl_set-chassis] )) ||
 | |
| _hostnamectl_set-chassis() {
 | |
|     if (( CURRENT <= 3 )); then
 | |
|         _chassis=( desktop laptop convertible server tablet handset watch embedded vm container )
 | |
|         _describe chassis _chassis
 | |
|     else
 | |
|         _message "no more options"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| (( $+functions[_hostnamectl_set-deployment] )) ||
 | |
| _hostnamectl_set-deployment() {
 | |
|     if (( CURRENT <= 3 )); then
 | |
|         _message "new environment"
 | |
|     else
 | |
|         _message "no more options"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| (( $+functions[_hostnamectl_set-location] )) ||
 | |
| _hostnamectl_set-location() {
 | |
|     if (( CURRENT <= 3 )); then
 | |
|         _message "new location"
 | |
|     else
 | |
|         _message "no more options"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| (( $+functions[_hostnamectl_commands] )) ||
 | |
| _hostnamectl_commands() {
 | |
|     local -a _hostnamectl_cmds
 | |
|     _hostnamectl_cmds=(
 | |
|         "status:Show current hostname settings"
 | |
|         "set-hostname:Set system hostname"
 | |
|         "set-icon-name:Set icon name for host"
 | |
|         "set-chassis:Set chassis type for host"
 | |
|         "set-deployment:Set deployment environment for host"
 | |
|         "set-location:Set location for host"
 | |
|     )
 | |
|     if (( CURRENT == 1 )); then
 | |
|         _describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@"
 | |
|     else
 | |
|         local curcontext="$curcontext"
 | |
|         cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}"
 | |
|         if (( $#cmd )); then
 | |
|             if [[ $cmd == status ]]; then
 | |
|                 _message "no options"
 | |
|             else
 | |
|                 _hostnamectl_$cmd
 | |
|             fi
 | |
|         else
 | |
|             _message "unknown hostnamectl command: $words[1]"
 | |
|         fi
 | |
|     fi
 | |
| }
 | |
| 
 | |
| _arguments -s \
 | |
|     {-h,--help}'[Show this help]' \
 | |
|     '--version[Show package version]' \
 | |
|     '--transient[Only set transient hostname]' \
 | |
|     '--static[Only set static hostname]' \
 | |
|     '--pretty[Only set pretty hostname]' \
 | |
|     '--no-ask-password[Do not prompt for password]' \
 | |
|     {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \
 | |
|     {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
 | |
|     '*::hostnamectl commands:_hostnamectl_commands'
 | 
