mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 17:13:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #
 | |
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
| #
 | |
| #
 | |
| 
 | |
| ##
 | |
| ## @fn 800-configure-features.sh
 | |
| ##
 | |
| ## Automatically checks all environment variables currently set and performs
 | |
| ## configuration tasks related to those variabels, including installing any
 | |
| ## extensions and external libraries associated with those variables to
 | |
| ## GUACAMOLE_HOME.  Only environment variable prefixes are considered; this
 | |
| ## script is not aware of whether an extension actually uses an environment
 | |
| ## variable.
 | |
| ##
 | |
| 
 | |
| ##
 | |
| ## Returns whether the feature associated with a particular environment
 | |
| ## variable prefix has configuration values set. Only the presence of
 | |
| ## environment variables having that prefix is checked. Features can also be
 | |
| ## entirely enabled/disabled through setting the [PREFIX_]ENABLED variable to
 | |
| ## true/false respectively, where "[PREFIX_]" is the specified environment
 | |
| ## variable prefix (including trailing underscore).
 | |
| ##
 | |
| ## @param VAR_BASE
 | |
| ##     The environment variable prefix to check, including trailing underscore.
 | |
| ##
 | |
| ## @returns
 | |
| ##     Zero if the feature associated with the given environment variable
 | |
| ##     prefix is enabled, non-zero otherwise.
 | |
| ##
 | |
| is_feature_enabled() {
 | |
| 
 | |
|     local VAR_BASE="$1"
 | |
| 
 | |
|     # Allow any feature to be explicitly enabled/disabled using a
 | |
|     # [PREFIX_]ENABLED variable
 | |
|     local ENABLED_VAR="${VAR_BASE}ENABLED"
 | |
|     if [ "${!ENABLED_VAR}" = "true" ]; then
 | |
|         return 0
 | |
|     elif [ "${!ENABLED_VAR}" = "false" ]; then
 | |
|         return 1
 | |
|     fi
 | |
| 
 | |
|     # Lacking an explicit request to enable/disable the feature, rely on
 | |
|     # implicit enable/disable via presence of any other variables having the
 | |
|     # given prefix
 | |
|     awk 'BEGIN{for(v in ENVIRON) print v}' | grep "^${VAR_BASE}" > /dev/null
 | |
| 
 | |
| }
 | |
| 
 | |
| # Search environment for enabled extensions/features based on environment
 | |
| # variable prefixes
 | |
| for VAR_BASE in /opt/guacamole/environment/*; do
 | |
| 
 | |
|     # Skip any directories without at least one corresponding environment
 | |
|     # variable set
 | |
|     is_feature_enabled "$(basename "$VAR_BASE")" || continue
 | |
| 
 | |
|     # Execute any associated configuration script
 | |
|     [ ! -e "$VAR_BASE/configure.sh" ] || source "$VAR_BASE/configure.sh"
 | |
| 
 | |
|     # Add any required links for extensions/libraries associated with the
 | |
|     # configured extension
 | |
|     for SUBDIR in lib extensions; do
 | |
|         if [ -d "$VAR_BASE/$SUBDIR" ]; then
 | |
|             mkdir -p "$GUACAMOLE_HOME/$SUBDIR/"
 | |
|             ln -s "$VAR_BASE/$SUBDIR"/* "$GUACAMOLE_HOME/$SUBDIR/"
 | |
|         fi
 | |
|     done
 | |
| 
 | |
| done
 | |
| 
 |