#!/bin/bash # Script to create symlinks for all modules in different naming styles # This ensures compatibility with different module import styles APP_DIR="$(dirname "$(dirname "$(readlink -f "$0")")")" MODULE_DIR="$APP_DIR/modules" echo "Creating module symlinks for compatibility..." echo "Module directory: $MODULE_DIR" # Create a function to make bidirectional symlinks create_module_symlinks() { if [ -d "$MODULE_DIR" ]; then # Create symlinks for hyphenated modules for module in "$MODULE_DIR"/*-*.js; do if [ -f "$module" ]; then # Convert hyphenated to camelCase BASE_NAME=$(basename "$module") CAMEL_NAME=$(echo "$BASE_NAME" | sed -E 's/-([a-z])/\U\1/g') # Create camelCase symlink if needed if [ ! -f "$MODULE_DIR/$CAMEL_NAME" ] && [ ! -L "$MODULE_DIR/$CAMEL_NAME" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$CAMEL_NAME" echo "Created symlink: $CAMEL_NAME -> $BASE_NAME" fi # Create extension-less symlink for both versions NO_EXT_BASE="${BASE_NAME%.js}" if [ ! -f "$MODULE_DIR/$NO_EXT_BASE" ] && [ ! -L "$MODULE_DIR/$NO_EXT_BASE" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$NO_EXT_BASE" echo "Created symlink: $NO_EXT_BASE -> $BASE_NAME" fi NO_EXT_CAMEL="${CAMEL_NAME%.js}" if [ ! -f "$MODULE_DIR/$NO_EXT_CAMEL" ] && [ ! -L "$MODULE_DIR/$NO_EXT_CAMEL" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$NO_EXT_CAMEL" echo "Created symlink: $NO_EXT_CAMEL -> $BASE_NAME" fi fi done # Create symlinks for camelCase modules (only non-symlinked files) for module in "$MODULE_DIR"/[a-z]*[A-Z]*.js; do if [ -f "$module" ] && [ ! -L "$module" ]; then # Convert camelCase to hyphenated BASE_NAME=$(basename "$module") HYPHEN_NAME=$(echo "$BASE_NAME" | sed -E 's/([a-z])([A-Z])/\1-\L\2/g') # Create hyphenated symlink if needed if [ ! -f "$MODULE_DIR/$HYPHEN_NAME" ] && [ ! -L "$MODULE_DIR/$HYPHEN_NAME" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$HYPHEN_NAME" echo "Created symlink: $HYPHEN_NAME -> $BASE_NAME" fi # Create extension-less symlink for both versions NO_EXT_BASE="${BASE_NAME%.js}" if [ ! -f "$MODULE_DIR/$NO_EXT_BASE" ] && [ ! -L "$MODULE_DIR/$NO_EXT_BASE" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$NO_EXT_BASE" echo "Created symlink: $NO_EXT_BASE -> $BASE_NAME" fi NO_EXT_HYPHEN="${HYPHEN_NAME%.js}" if [ ! -f "$MODULE_DIR/$NO_EXT_HYPHEN" ] && [ ! -L "$MODULE_DIR/$NO_EXT_HYPHEN" ]; then ln -sf "$BASE_NAME" "$MODULE_DIR/$NO_EXT_HYPHEN" echo "Created symlink: $NO_EXT_HYPHEN -> $BASE_NAME" fi fi done echo "Module symlinks created successfully" else echo "Error: Module directory not found at $MODULE_DIR" exit 1 fi } # Execute the symlink creation function create_module_symlinks