You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					92 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					92 lines
				
				2.5 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								# info: list nginx config parameters
							 | 
						||
| 
								 | 
							
								# options: [FORMAT]
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# example: v-list-sys-nginx-config
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This function for obtaining the list of nginx config parameters.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                Variables & Functions                     #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Argument definition
							 | 
						||
| 
								 | 
							
								format=${1-shell}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Includes
							 | 
						||
| 
								 | 
							
								# shellcheck source=/etc/hestiacp/hestia.conf
							 | 
						||
| 
								 | 
							
								source /etc/hestiacp/hestia.conf
							 | 
						||
| 
								 | 
							
								# shellcheck source=/usr/local/hestia/func/main.sh
							 | 
						||
| 
								 | 
							
								source $HESTIA/func/main.sh
							 | 
						||
| 
								 | 
							
								# load config file
							 | 
						||
| 
								 | 
							
								source_conf "$HESTIA/conf/hestia.conf"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# JSON list function
							 | 
						||
| 
								 | 
							
								json_list() {
							 | 
						||
| 
								 | 
							
									parse_object_kv_list $(echo "$config" | egrep "$keys" | tr -d ';' | awk '{print $1"="$2}')
							 | 
						||
| 
								 | 
							
									echo '{
							 | 
						||
| 
								 | 
							
								    "CONFIG": {
							 | 
						||
| 
								 | 
							
								        "worker_processes": "'$worker_processes'",
							 | 
						||
| 
								 | 
							
								        "worker_connections": "'$worker_connections'",
							 | 
						||
| 
								 | 
							
								        "send_timeout": "'$send_timeout'",
							 | 
						||
| 
								 | 
							
								        "proxy_connect_timeout": "'$proxy_connect_timeout'",
							 | 
						||
| 
								 | 
							
								        "proxy_send_timeout": "'$proxy_send_timeout'",
							 | 
						||
| 
								 | 
							
								        "proxy_read_timeout": "'$proxy_read_timeout'",
							 | 
						||
| 
								 | 
							
								        "client_max_body_size": "'$client_max_body_size'",
							 | 
						||
| 
								 | 
							
								        "gzip": "'$gzip'",
							 | 
						||
| 
								 | 
							
								        "gzip_comp_level": "'$gzip_comp_level'",
							 | 
						||
| 
								 | 
							
								        "charset": "'$charset'",
							 | 
						||
| 
								 | 
							
								        "config_path": "'$config_path'"
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								}'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# SHELL list function
							 | 
						||
| 
								 | 
							
								shell_list() {
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | tr -d ';'
							 | 
						||
| 
								 | 
							
									echo "config_path    $config_path"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# PLAIN list function
							 | 
						||
| 
								 | 
							
								plain_list() {
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | tr -d ';'
							 | 
						||
| 
								 | 
							
									echo "config_path $config_path"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# CSV list function
							 | 
						||
| 
								 | 
							
								csv_list() {
							 | 
						||
| 
								 | 
							
									echo "$keys" | sed "s/ |/,/g"
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | awk '{print $2}' | tr -d ';' | tr '\n' ','
							 | 
						||
| 
								 | 
							
									echo
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                       Action                             #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Defining config path
							 | 
						||
| 
								 | 
							
								config_path='/etc/nginx/nginx.conf'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Defining keys
							 | 
						||
| 
								 | 
							
								keys="worker_processes |worker_connections |send_timeout"
							 | 
						||
| 
								 | 
							
								keys="$keys |proxy_connect_timeout |proxy_send_timeout"
							 | 
						||
| 
								 | 
							
								keys="$keys |proxy_read_timeout |client_max_body_size"
							 | 
						||
| 
								 | 
							
								keys="$keys |gzip |gzip_comp_level |charset "
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Reading nginx config
							 | 
						||
| 
								 | 
							
								config=$(cat $config_path)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Listing data
							 | 
						||
| 
								 | 
							
								case $format in
							 | 
						||
| 
								 | 
							
									json) json_list ;;
							 | 
						||
| 
								 | 
							
									plain) plain_list ;;
							 | 
						||
| 
								 | 
							
									csv) csv_list ;;
							 | 
						||
| 
								 | 
							
									shell) shell_list | column -t ;;
							 | 
						||
| 
								 | 
							
								esac
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                       Hestia                             #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exit
							 |