diff --git a/install-script.sh b/install-script.sh index 4862e2c..ab8e847 100755 --- a/install-script.sh +++ b/install-script.sh @@ -1173,10 +1173,19 @@ echo -e "${BOLD}Transmission Configuration:${NC}" echo -e "Configure connection to your Transmission client:" echo -# If stdin is not a terminal (pipe or redirect), assume default +# If stdin is not a terminal (pipe or redirect), read from stdin if [ ! -t 0 ]; then - input_remote=$(head -n 1) # Read first line from stdin + # Save all input to a temporary file + INPUT_FILE=$(mktemp) + cat > "$INPUT_FILE" + + # Read the first line as the remote selection + input_remote=$(awk 'NR==1{print}' "$INPUT_FILE") echo "DEBUG: Non-interactive mode detected, read input: '$input_remote'" + + # Keep the rest of the input for later use + tail -n +2 "$INPUT_FILE" > "${INPUT_FILE}.rest" + mv "${INPUT_FILE}.rest" "$INPUT_FILE" else read -p "Is Transmission running on a remote server? (y/n) [n]: " input_remote fi @@ -1194,14 +1203,29 @@ fi if [ "$TRANSMISSION_REMOTE" = "true" ]; then # Get remote transmission details if [ ! -t 0 ]; then - # Non-interactive mode - try to read from stdin with defaults - TRANSMISSION_HOST=$(head -n 1 || echo "localhost") - TRANSMISSION_PORT=$(head -n 1 || echo "9091") - TRANSMISSION_USER=$(head -n 1 || echo "") - TRANSMISSION_PASS=$(head -n 1 || echo "") - TRANSMISSION_RPC_PATH=$(head -n 1 || echo "/transmission/rpc") - REMOTE_DOWNLOAD_DIR=$(head -n 1 || echo "/var/lib/transmission-daemon/downloads") - LOCAL_DOWNLOAD_DIR=$(head -n 1 || echo "/mnt/transmission-downloads") + # Non-interactive mode - we already have input saved to INPUT_FILE + # from the previous step + + # Read each line from the input file + TRANSMISSION_HOST=$(awk 'NR==1{print}' "$INPUT_FILE") + TRANSMISSION_PORT=$(awk 'NR==2{print}' "$INPUT_FILE") + TRANSMISSION_USER=$(awk 'NR==3{print}' "$INPUT_FILE") + TRANSMISSION_PASS=$(awk 'NR==4{print}' "$INPUT_FILE") + TRANSMISSION_RPC_PATH=$(awk 'NR==5{print}' "$INPUT_FILE") + REMOTE_DOWNLOAD_DIR=$(awk 'NR==6{print}' "$INPUT_FILE") + LOCAL_DOWNLOAD_DIR=$(awk 'NR==7{print}' "$INPUT_FILE") + + # Use defaults for empty values + TRANSMISSION_HOST=${TRANSMISSION_HOST:-"localhost"} + TRANSMISSION_PORT=${TRANSMISSION_PORT:-"9091"} + TRANSMISSION_USER=${TRANSMISSION_USER:-""} + TRANSMISSION_PASS=${TRANSMISSION_PASS:-""} + TRANSMISSION_RPC_PATH=${TRANSMISSION_RPC_PATH:-"/transmission/rpc"} + REMOTE_DOWNLOAD_DIR=${REMOTE_DOWNLOAD_DIR:-"/var/lib/transmission-daemon/downloads"} + LOCAL_DOWNLOAD_DIR=${LOCAL_DOWNLOAD_DIR:-"/mnt/transmission-downloads"} + + # Clean up + rm -f "$INPUT_FILE" echo "DEBUG: Non-interactive mode with remote details:" echo "DEBUG: Host: $TRANSMISSION_HOST, Port: $TRANSMISSION_PORT" echo "DEBUG: Remote dir: $REMOTE_DOWNLOAD_DIR, Local dir: $LOCAL_DOWNLOAD_DIR"