From d2babeba279a67cc163cf3a9e376c9e05b566d41 Mon Sep 17 00:00:00 2001 From: MasterDraco Date: Wed, 5 Mar 2025 08:46:06 +0000 Subject: [PATCH] Fix configuration gathering and order of operations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add emergency fallback to ask about remote Transmission if config step was skipped - Add CONFIG_GATHERED flag to track if config step was run - Improve bootstrap installer with clear explanation of what to expect - Explicitly check for gather_configuration success and output debug info - Add additional variable initialization to ensure consistent behavior 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- bootstrap-installer.sh | 13 +++++++++++++ main-installer.sh | 13 +++++++++++-- modules/config-module.sh | 3 +++ modules/dependencies-module.sh | 18 ++++++++++++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/bootstrap-installer.sh b/bootstrap-installer.sh index 260ea47..649cea2 100755 --- a/bootstrap-installer.sh +++ b/bootstrap-installer.sh @@ -62,6 +62,19 @@ fi echo -e "${YELLOW}Running the main installer...${NC}" cd "$INSTALL_DIR" chmod +x main-installer.sh + +# Let the user know what's about to happen +echo -e "${YELLOW}You will now be asked for configuration options including:${NC}" +echo -e "- Installation directory" +echo -e "- User to run the service as" +echo -e "- Whether Transmission is running on a remote server" +echo -e "- Transmission connection details" +echo -e "- Media organization preferences" +echo + +# Add small delay to ensure user sees this message +sleep 2 + ./main-installer.sh # Installation complete diff --git a/main-installer.sh b/main-installer.sh index 02906eb..2476293 100755 --- a/main-installer.sh +++ b/main-installer.sh @@ -99,6 +99,9 @@ trap 'cleanup_on_error "$BASH_COMMAND"' ERR # Execute the installation steps in sequence log "INFO" "Starting installation process..." +# Set default for TRANSMISSION_REMOTE +export TRANSMISSION_REMOTE=false + if [ "$IS_UPDATE" = true ]; then log "INFO" "Running in update mode - preserving existing configuration..." @@ -132,10 +135,16 @@ else # Step 1: Gather configuration from user log "INFO" "Gathering configuration..." - gather_configuration || { + # Explicitly run this to ensure it's called before dependencies + set +e # Temporarily disable exit on error + if ! gather_configuration; then log "ERROR" "Configuration gathering failed" exit 1 - } + fi + set -e # Re-enable exit on error + + # Debug: Verify TRANSMISSION_REMOTE is set + log "INFO" "After configuration gathering, TRANSMISSION_REMOTE=$TRANSMISSION_REMOTE" # Step 2: Install dependencies log "INFO" "Installing dependencies..." diff --git a/modules/config-module.sh b/modules/config-module.sh index ff4dd70..c607fc4 100644 --- a/modules/config-module.sh +++ b/modules/config-module.sh @@ -78,6 +78,9 @@ function gather_configuration() { # Initialize default values for Transmission mode export TRANSMISSION_REMOTE=false + + # Set flag to indicate that configuration was gathered + export CONFIG_GATHERED=true echo -e "${BOLD}Installation Configuration:${NC}" echo -e "Please provide the following configuration parameters:" echo diff --git a/modules/dependencies-module.sh b/modules/dependencies-module.sh index 4309d7a..705bcc4 100644 --- a/modules/dependencies-module.sh +++ b/modules/dependencies-module.sh @@ -12,6 +12,24 @@ function install_dependencies() { fi log "INFO" "Transmission mode: $([ "$TRANSMISSION_REMOTE" = true ] && echo "Remote" || echo "Local")" + + # Debug: print out whether the gather_configuration was called + if [ "$IS_UPDATE" != true ]; then + if [ -z "$CONFIG_GATHERED" ]; then + log "ERROR" "Configuration step was skipped! This is a bug." + log "INFO" "Please report this issue. Will now manually ask about Transmission location." + + # Emergency fix: Ask about remote installation here + read -p "Is Transmission running on a remote server? (y/n) [n]: " input_remote + if [[ $input_remote =~ ^[Yy]$ ]]; then + export TRANSMISSION_REMOTE=true + log "INFO" "Remote Transmission selected." + else + export TRANSMISSION_REMOTE=false + log "INFO" "Local Transmission selected." + fi + fi + fi # Check for package manager if command -v apt-get &> /dev/null; then