This commit addresses multiple code consistency and reliability issues across the codebase: 1. Version consistency - use package.json version (2.0.9) throughout 2. Improved module loading with better error handling and consistent symlinks 3. Enhanced data directory handling with better error checking 4. Fixed redundant code in main-installer.sh 5. Improved error handling in transmission-client.js 6. Added extensive module symlink creation 7. Better file path handling and permission checks 8. Enhanced API response handling 💡 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
78 lines
3.0 KiB
Bash
Executable File
78 lines
3.0 KiB
Bash
Executable File
#!/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 |