composer wrapper update
This commit is contained in:
		
							parent
							
								
									be3095e000
								
							
						
					
					
						commit
						502e4efb73
					
				@ -1,38 +1,36 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Lenvi Smart Composer Wrapper
 | 
					#
 | 
				
			||||||
 | 
					# Lenvi Smart Composer Wrapper (v2)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
# This script automatically detects the required PHP version for a project
 | 
					# This script automatically detects the required PHP version for a project
 | 
				
			||||||
# by looking for a `Lenvi.yaml` file and uses the correct PHP binary.
 | 
					# by reading a central Lenvi.yaml file and uses the correct PHP binary.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# --- The real composer binary and default PHP ---
 | 
				
			||||||
COMPOSER_PHAR="/usr/local/bin/composer.phar"
 | 
					COMPOSER_PHAR="/usr/local/bin/composer.phar"
 | 
				
			||||||
DEFAULT_PHP_BINARY="/usr/bin/php"
 | 
					DEFAULT_PHP_BINARY="/usr/bin/php"
 | 
				
			||||||
PHP_BINARY=""
 | 
					PHP_BINARY=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Find the Lenvi.yaml file by looking in parent directories
 | 
					# --- The EXACT path to the configuration file, baked in by Ansible ---
 | 
				
			||||||
LENVI_CONFIG_FILE=""
 | 
					LENVI_CONFIG_FILE="{{ playbook_dir }}/Lenvi.yaml"
 | 
				
			||||||
SEARCH_DIR=$(pwd)
 | 
					 | 
				
			||||||
while [[ "$SEARCH_DIR" != "" && ! -f "$SEARCH_DIR/Lenvi.yaml" ]]; do
 | 
					 | 
				
			||||||
  SEARCH_DIR=${SEARCH_DIR%/*}
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ -f "$SEARCH_DIR/Lenvi.yaml" ]]; then
 | 
					# Check if the central config file actually exists
 | 
				
			||||||
  LENVI_CONFIG_FILE="$SEARCH_DIR/Lenvi.yaml"
 | 
					if [[ -f "$LENVI_CONFIG_FILE" ]]; then
 | 
				
			||||||
fi
 | 
					  # We have the config file, now find the PHP version for the current project directory
 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ -n "$LENVI_CONFIG_FILE" ]]; then
 | 
					 | 
				
			||||||
  # We found a config file, now find the PHP version for the current project directory
 | 
					 | 
				
			||||||
  CURRENT_PROJECT_ROOT=$(pwd)
 | 
					  CURRENT_PROJECT_ROOT=$(pwd)
 | 
				
			||||||
  PHP_VERSION=$(yq eval '.sites[] | select(.project_root == "'"$CURRENT_PROJECT_ROOT"'") | .php_version' "$LENVI_CONFIG_FILE")
 | 
					  PHP_VERSION=$(yq eval '.sites[] | select(.project_root == "'"$CURRENT_PROJECT_ROOT"'") | .php_version' "$LENVI_CONFIG_FILE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ -n "$PHP_VERSION" && -x "/usr/bin/php$PHP_VERSION" ]]; then
 | 
					  if [[ -n "$PHP_VERSION" && -x "/usr/bin/php$PHP_VERSION" ]]; then
 | 
				
			||||||
 | 
					    # Version found and the corresponding PHP binary exists
 | 
				
			||||||
    PHP_BINARY="/usr/bin/php$PHP_VERSION"
 | 
					    PHP_BINARY="/usr/bin/php$PHP_VERSION"
 | 
				
			||||||
    echo "Lenvi: Project found. Using PHP $PHP_VERSION..." >&2
 | 
					    echo "Lenvi: Project configuration found. Using PHP $PHP_VERSION..." >&2
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If no specific PHP binary was found, use the system default
 | 
					# If no specific PHP binary was found after checking, use the system default
 | 
				
			||||||
if [[ -z "$PHP_BINARY" ]]; then
 | 
					if [[ -z "$PHP_BINARY" ]]; then
 | 
				
			||||||
  echo "Lenvi: No project configuration found for this directory. Using default system PHP." >&2
 | 
					  echo "Lenvi: No specific project configuration found for this directory. Using default system PHP." >&2
 | 
				
			||||||
  PHP_BINARY="$DEFAULT_PHP_BINARY"
 | 
					  PHP_BINARY="$DEFAULT_PHP_BINARY"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Execute the real Composer with the determined PHP version and pass all arguments
 | 
				
			||||||
exec "$PHP_BINARY" "$COMPOSER_PHAR" "$@"
 | 
					exec "$PHP_BINARY" "$COMPOSER_PHAR" "$@"
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user