Fix module import issue on fresh installs
- Added create_directories function to properly set up directory structure - Added copy_module_files function to ensure JS modules are copied correctly - Updated server.js to handle module imports more resiliently - Fixed imports to work with both .js and no extension module references 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
72d230706a
commit
54871518fc
10
.env.install
10
.env.install
@ -1,8 +1,8 @@
|
|||||||
export TRANSMISSION_REMOTE=true
|
export TRANSMISSION_REMOTE=true
|
||||||
export TRANSMISSION_HOST="myserver.example.com"
|
export TRANSMISSION_HOST="192.168.5.19"
|
||||||
export TRANSMISSION_PORT="9091"
|
export TRANSMISSION_PORT="9091"
|
||||||
export TRANSMISSION_USER="username"
|
export TRANSMISSION_USER=""
|
||||||
export TRANSMISSION_PASS="password"
|
export TRANSMISSION_PASS=""
|
||||||
export TRANSMISSION_RPC_PATH="/transmission/rpc"
|
export TRANSMISSION_RPC_PATH="/transmission/rpc"
|
||||||
export REMOTE_DOWNLOAD_DIR="/var/lib/transmission-daemon/downloads"
|
export REMOTE_DOWNLOAD_DIR="/downloads"
|
||||||
export LOCAL_DOWNLOAD_DIR="/mnt/downloads"
|
export LOCAL_DOWNLOAD_DIR="/media"
|
||||||
|
@ -296,6 +296,13 @@ EOF
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Copy JavaScript module files during update as well
|
||||||
|
log "INFO" "Copying JavaScript module files..."
|
||||||
|
copy_module_files || {
|
||||||
|
log "ERROR" "Failed to copy JavaScript module files"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
# This is a fresh installation - run all steps
|
# This is a fresh installation - run all steps
|
||||||
|
|
||||||
@ -359,6 +366,7 @@ else
|
|||||||
log "INFO" "Creating directories..."
|
log "INFO" "Creating directories..."
|
||||||
# Make sure CONFIG_DIR is set and exported
|
# Make sure CONFIG_DIR is set and exported
|
||||||
export CONFIG_DIR=${CONFIG_DIR:-"/etc/transmission-rss-manager"}
|
export CONFIG_DIR=${CONFIG_DIR:-"/etc/transmission-rss-manager"}
|
||||||
|
# Call our new create_directories function
|
||||||
create_directories || {
|
create_directories || {
|
||||||
log "ERROR" "Directory creation failed"
|
log "ERROR" "Directory creation failed"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1,6 +1,40 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# File creator module for Transmission RSS Manager Installation
|
# File creator module for Transmission RSS Manager Installation
|
||||||
|
|
||||||
|
function create_directories() {
|
||||||
|
echo -e "${YELLOW}Creating directories...${NC}"
|
||||||
|
|
||||||
|
# Create main installation directory
|
||||||
|
mkdir -p "$INSTALL_DIR"
|
||||||
|
log "INFO" "Created installation directory: $INSTALL_DIR"
|
||||||
|
|
||||||
|
# Create modules directory
|
||||||
|
mkdir -p "$INSTALL_DIR/modules"
|
||||||
|
log "INFO" "Created modules directory: $INSTALL_DIR/modules"
|
||||||
|
|
||||||
|
# Create data directory
|
||||||
|
mkdir -p "$INSTALL_DIR/data"
|
||||||
|
log "INFO" "Created data directory: $INSTALL_DIR/data"
|
||||||
|
|
||||||
|
# Create public directory structure
|
||||||
|
mkdir -p "$INSTALL_DIR/public/css"
|
||||||
|
mkdir -p "$INSTALL_DIR/public/js"
|
||||||
|
log "INFO" "Created public directories"
|
||||||
|
|
||||||
|
# Create config directory
|
||||||
|
mkdir -p "$CONFIG_DIR"
|
||||||
|
log "INFO" "Created config directory: $CONFIG_DIR"
|
||||||
|
|
||||||
|
# Create logs directory
|
||||||
|
mkdir -p "$INSTALL_DIR/logs"
|
||||||
|
log "INFO" "Created logs directory: $INSTALL_DIR/logs"
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
chown -R "$USER:$USER" "$INSTALL_DIR"
|
||||||
|
chmod -R 755 "$INSTALL_DIR"
|
||||||
|
log "INFO" "Set permissions for installation directories"
|
||||||
|
}
|
||||||
|
|
||||||
function create_config_files() {
|
function create_config_files() {
|
||||||
echo -e "${YELLOW}Creating configuration files...${NC}"
|
echo -e "${YELLOW}Creating configuration files...${NC}"
|
||||||
|
|
||||||
@ -1771,4 +1805,29 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo "Configuration files created."
|
echo "Configuration files created."
|
||||||
|
|
||||||
|
# Copy all JavaScript modules to the installation directory
|
||||||
|
echo "Copying JavaScript module files..."
|
||||||
|
copy_module_files
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to copy all JavaScript module files to the installation directory
|
||||||
|
function copy_module_files() {
|
||||||
|
# Create the modules directory if it doesn't exist
|
||||||
|
mkdir -p "$INSTALL_DIR/modules"
|
||||||
|
|
||||||
|
# Copy all JavaScript module files from the source directory
|
||||||
|
for js_file in "${SCRIPT_DIR}/modules/"*.js; do
|
||||||
|
if [ -f "$js_file" ]; then
|
||||||
|
module_name=$(basename "$js_file")
|
||||||
|
echo "Copying module: $module_name"
|
||||||
|
cp "$js_file" "$INSTALL_DIR/modules/$module_name"
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
chown "$USER:$USER" "$INSTALL_DIR/modules/$module_name"
|
||||||
|
chmod 644 "$INSTALL_DIR/modules/$module_name"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log "INFO" "Copied JavaScript modules to $INSTALL_DIR/modules/"
|
||||||
}
|
}
|
38
server.js
38
server.js
@ -15,9 +15,41 @@ const jwt = require('jsonwebtoken');
|
|||||||
const bcrypt = require('bcrypt');
|
const bcrypt = require('bcrypt');
|
||||||
|
|
||||||
// Import custom modules
|
// Import custom modules
|
||||||
const RssFeedManager = require('./modules/rss-feed-manager.js');
|
// Try to import with .js extension first, then fallback to no extension for better compatibility
|
||||||
const TransmissionClient = require('./modules/transmission-client.js');
|
let RssFeedManager, TransmissionClient, PostProcessor;
|
||||||
const PostProcessor = require('./modules/post-processor.js');
|
|
||||||
|
try {
|
||||||
|
RssFeedManager = require('./modules/rss-feed-manager.js');
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
RssFeedManager = require('./modules/rss-feed-manager');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to load RssFeedManager module:', err);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
TransmissionClient = require('./modules/transmission-client.js');
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
TransmissionClient = require('./modules/transmission-client');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to load TransmissionClient module:', err);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PostProcessor = require('./modules/post-processor.js');
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
PostProcessor = require('./modules/post-processor');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to load PostProcessor module:', err);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Constants and configuration
|
// Constants and configuration
|
||||||
const DEFAULT_CONFIG_PATH = '/etc/transmission-rss-manager/config.json';
|
const DEFAULT_CONFIG_PATH = '/etc/transmission-rss-manager/config.json';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user