Skip to content

FTPRush Installer Script for Linux: Automated Download, Setup, and Desktop Entry Creation

Notifications You must be signed in to change notification settings

ReadyPixels/FTPRush_Linux_Install_Script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 FTPRush Installer Script for Linux

Automated download, installation, desktop integration, and clean removal of FTPRush on Debian-based Linux systems.

License: GPL-3.0 Made with Bash Platform: Linux Debian-based Status: Active Shell: Bash 5.0+

🚀 Quick Install📖 User Guide✨ Features🔧 Troubleshooting🤝 Contributing


🚀 One-Line Installation

curl -fsSL https://raw.githubusercontent.com/ReadyPixels/FTPRush_Linux_Install_Script/main/install_ftprush.sh | sudo bash -s -- --yes install

📚 Quick Links

📋 Changelog 👥 Credits Tasks 📄 License
Version history Contributors Project progress GPL-3.0 License

⚡ Quick Commands

🔧 Essential Commands
# 🚀 Install FTPRush
curl -fsSL https://raw.githubusercontent.com/ReadyPixels/FTPRush_Linux_Install_Script/main/install_ftprush.sh | sudo bash -s -- --yes install

# 🗑️ Uninstall FTPRush  
sudo install_ftprush.sh uninstall

# 🎯 Launch FTPRush
ftprush

📋 Overview

This repository provides a Bash script, install_ftprush.sh, that installs FTPRush on Linux by:

🔽 Download 📦 Extract 🖥️ Desktop Integration 🧹 Cleanup 🗑️ Uninstall
Official tarball /opt/FTPRush Desktop entry Temp artifacts Complete removal

💡 Interactive Experience: The script guides you through installation or uninstallation with user-friendly prompts.


🖥️ System Requirements

🐧 Operating System Debian-based Linux distribution
🔐 Privileges sudo access required
🌐 Network Internet connection for downloads

🎯 Supported Systems

🟢 Fully Supported 🟡 Compatible 📋 Requirements
Ubuntu (current versions) Kubuntu, Xubuntu Debian-based
Debian 10+ Elementary OS apt package manager
Linux Mint 19+ Zorin OS systemd (recommended)
Pop!_OS 20.04+ MX Linux 64-bit architecture

📥 Installation

You can install the script to a convenient location (e.g., /usr/local/bin) and run it with various options.

🌐 Option 1: Direct Download

Recommended: Download directly from GitHub repository

# 📥 Download the installer
sudo wget https://raw.githubusercontent.com/ReadyPixels/FTPRush_Linux_Install_Script/main/install_ftprush.sh -O /usr/local/bin/install_ftprush.sh

# 🔧 Make executable
sudo chmod +x /usr/local/bin/install_ftprush.sh

📁 Option 2: Manual Installation

Alternative: For local development or custom setups

Step 1: Copy the script to system location

sudo cp install_ftprush.sh /usr/local/bin/

Step 2: Set executable permissions

sudo chmod +x /usr/local/bin/install_ftprush.sh

📖 User Guide

Getting Started

This guide will walk you through installing and using FTPRush on your Linux system.

Step 1: Quick Installation

The fastest way to install FTPRush is using our one-line installer:

curl -fsSL https://raw.githubusercontent.com/ReadyPixels/FTPRush_Linux_Install_Script/main/install_ftprush.sh | sudo bash -s -- --yes install

This command will:

  • Download the installer script
  • Install FTPRush to /opt/FTPRush
  • Create a desktop entry for easy access
  • Set up the command-line wrapper

Step 2: Launch FTPRush

After installation, you can launch FTPRush in several ways:

From Desktop:

  • Look for "FTPRush" in your applications menu
  • Click the FTPRush icon on your desktop (if created)

From Command Line:

ftprush

From File Manager:

  • Navigate to /opt/FTPRush
  • Double-click the ftprush executable

Step 3: First-Time Setup

When you first launch FTPRush:

  1. The application will start with a clean interface
  2. Configure your FTP/SFTP connections using the connection manager
  3. Set your preferences in the settings menu

Common Tasks

Installing to a Custom Location

If you want to install FTPRush to a different directory:

sudo install_ftprush.sh --prefix=/your/custom/path install

Backing Up Configuration

Before major updates or system changes:

sudo install_ftprush.sh --backup=/path/to/backup install

Restoring Configuration

To restore a previous configuration:

sudo install_ftprush.sh --restore=/path/to/backup install

Uninstalling FTPRush

To completely remove FTPRush:

sudo install_ftprush.sh uninstall

To uninstall while keeping a backup of your settings:

sudo install_ftprush.sh --backup=/path/to/backup uninstall

⚙️ Advanced Usage

🤖 Silent Installation

Perfect for automated deployments and CI/CD pipelines

# 🔇 Skip all prompts
sudo install_ftprush.sh --yes install

🔗 Command-line Wrapper

Launch FTPRush from anywhere in your terminal

# 🛠️ Create wrapper
sudo install_ftprush.sh --create-wrapper

💡 Result: Creates /usr/local/bin/ftprush for easy GUI access


🎛️ Interactive vs Non-Interactive Installation

🖱️ Interactive Mode Non-Interactive Mode
Menu-driven interface Direct command execution
User-friendly prompts Automation-friendly
Default behavior Requires explicit actions

🖱️ Interactive Mode (Default)

sudo install_ftprush.sh

⚡ Non-Interactive Mode

📋 Available Commands
# 🚀 Install FTPRush
sudo install_ftprush.sh install

# 🗑️ Uninstall FTPRush
sudo install_ftprush.sh uninstall

# 🤖 Silent installation
sudo install_ftprush.sh --yes install

🎯 Command-line Options

📝 Syntax

sudo install_ftprush.sh [OPTIONS] [ACTION]
🔧 Options
--yes / -y 🤖 Automatic yes to all prompts
--no-cleanup 🗂️ Skip cleanup of temporary files
--custom-dir DIR 📁 Install to custom directory
--create-wrapper 🔗 Create command-line wrapper
--help / -h Show help message
⚡ Actions
install 🚀 Install FTPRush
uninstall 🗑️ Remove FTPRush
backup 💾 Create backup
restore 🔄 Restore from backup

📚 Examples

🎯 Basic Installation
# 🖱️ Interactive installation
sudo install_ftprush.sh

# 🤖 Silent installation
sudo install_ftprush.sh --yes install
🛠️ Custom Installation
# 📁 Install to custom directory
sudo install_ftprush.sh install --custom-dir /opt/custom/ftprush

# 🔗 Install with wrapper creation
sudo install_ftprush.sh --yes install --create-wrapper
🔧 Maintenance Workflow
# 💾 Create backup before update
sudo install_ftprush.sh backup

# 🗑️ Uninstall old version
sudo install_ftprush.sh uninstall

# 🚀 Install new version
sudo install_ftprush.sh --yes install

# 🔄 Restore if needed (optional)
sudo install_ftprush.sh restore

💻 Command-line Wrapper

Easy terminal access to FTPRush GUI

Command Description Example
ftprush 🚀 Launch FTPRush Basic startup
ftprush /path/to/file 📁 Launch with file Open specific file
ftprush & 🔄 Launch in background Non-blocking execution

Managing the Command-Line Wrapper

🔧 Managing the Command-Line Wrapper

Flexible wrapper management for different use cases

# 🗑️ Remove wrapper only
sudo rm /usr/local/bin/ftprush

# 🔄 Recreate wrapper
sudo install_ftprush.sh --create-wrapper

🚀 Launching

🎯 Run the Installer

Interactive Mode:

sudo install_ftprush.sh

One-Line Installation:

curl -fsSL https://raw.githubusercontent.com/ReadyPixels/FTPRush_Linux_Install_Script/main/install_ftprush.sh | sudo bash -s -- --yes install

🎉 First-time Setup

Automated Process: The script handles everything for you!

1️⃣ Check Installation Verify if FTPRush is already installed
2️⃣ Download Fetch latest FTPRush Linux version
3️⃣ Extract Install to /opt/FTPRush
4️⃣ Desktop Integration Create application menu entry
5️⃣ Cleanup Remove temporary files (optional)

🎯 Launch FTPRush After Installation

📱 Applications Menu 💻 Terminal 🖥️ Desktop
Search for "FTPRush" ftprush command Desktop shortcut

📖 Usage

🖱️ Interactive Mode (Default)

Run the installer without arguments to use the interactive menu:

sudo install_ftprush.sh

⚡ Non-Interactive Mode

For automated installations, you can use command-line arguments:

# 🚀 Install with default options (non-interactive)
sudo install_ftprush.sh --yes install

# 📁 Install to a custom directory
sudo install_ftprush.sh --yes --prefix=/opt/custom/path install

# 🗑️ Uninstall (removes all files)
sudo install_ftprush.sh --yes uninstall

⚙️ Command-Line Options

  • 🤖 --yes or --silent: Run in non-interactive mode, automatically answering 'yes' to all prompts
  • 📁 --prefix=PATH: Install to a custom directory (e.g., --prefix=/opt/custom/path)
  • 💾 --backup=DIR: Backup configuration to the specified directory during installation/uninstallation
  • ⏭️ --no-backup: Skip configuration backup during uninstallation
  • 🔄 --restore=DIR: Restore configuration from the specified directory during installation
  • 🔄 --no-update-check: Skip checking for script updates
  • 🔗 --install-wrapper: Install command-line wrapper (requires root)
  • 🗑️ --remove-wrapper: Remove command-line wrapper (requires root)
  • 📊 --version or -v: Show version information
  • 🚀 install: Install FTPRush
  • 🗑️ uninstall: Remove FTPRush
  • -h or --help: Show help message

💡 Examples

# Basic installation
sudo install_ftprush.sh install

# Install silently to a custom directory
sudo install_ftprush.sh --yes --prefix=/opt/myapps/FTPRush install

# Install with configuration backup
sudo install_ftprush.sh --backup=/path/to/backup install

# Install and restore configuration
sudo install_ftprush.sh --restore=/path/to/backup install

# Install command-line wrapper (requires root)
sudo install_ftprush.sh --install-wrapper

# Remove command-line wrapper (requires root)
sudo install_ftprush.sh --remove-wrapper

# Check version information
sudo install_ftprush.sh --version

# Uninstall with backup to a specific directory
sudo install_ftprush.sh --backup=/path/to/backup uninstall

# Uninstall without backup
sudo install_ftprush.sh --no-backup uninstall

# Skip update check (useful for automation)
sudo install_ftprush.sh --no-update-check install

Command-Line Wrapper

After installation, you can run FTPRush from the command line using the wrapper script. The wrapper script is installed to /usr/local/bin/ftprush and provides a convenient way to launch FTPRush.

Installing the Wrapper

The wrapper is automatically installed during the main installation if you run the installer as root. If you need to install it separately:

sudo install_ftprush.sh --install-wrapper

Using the Wrapper

Once installed, you can simply run:

ftprush

Removing the Wrapper

To remove the wrapper script:

sudo install_ftprush.sh --remove-wrapper

How It Works

The wrapper script:

  1. Automatically detects the FTPRush installation directory
  2. Launches the FTPRush binary with any provided arguments
  3. Provides helpful error messages if FTPRush is not found
  4. Works with both default and custom installation paths

🛠️ Usage

📋 Interactive Menu

User-friendly installation process

When you run the script, you will be prompted with:

1. Install FTPRush
2. Uninstall FTPRush
🚀 Option 1: Install FTPRush

The script will perform these actions:

📥 Download Archive to /tmp/FTPRush_linux.tar.bz2
📦 Extract Contents to /opt/FTPRush
🔧 Permissions Set execute on /opt/FTPRush/ftprush
🖼️ Desktop Entry Create /usr/share/applications/ftprush.desktop
🧹 Cleanup Optional removal of temporary files
🗑️ Option 2: Uninstall FTPRush

The script will remove:

  • 📁 /opt/FTPRush directory
  • 🖥️ /usr/share/applications/ftprush.desktop entry
  • 🔗 Command-line wrapper (if installed)

⚠️ Note: Configuration files in user directories are preserved unless explicitly removed


✨ Features (Implemented)

  • 🤖 Automated Installation

    • 📥 Downloads FTPRush tarball with checksum verification
    • 📦 Extracts to /opt/FTPRush (or custom path) with proper permissions
    • 🖥️ Creates desktop entry at /usr/share/applications/ftprush.desktop
    • 🎨 Downloads and sets up application icon
  • ⚙️ Flexible Configuration

    • 📁 Custom installation directory via --prefix option
    • 🔇 Non-interactive mode with --yes/--silent for automation
    • 🖱️ Interactive prompts for user-friendly manual installation
  • 💾 Configuration Management

    • 🛡️ Backup user configuration before uninstallation or upgrade
    • 🔄 Restore configuration from backup during installation
    • 📂 Specify custom backup/restore directories
    • ⏭️ Skip backup with --no-backup flag
  • 🔒 Safety Features

    • ✅ Checksum verification of downloaded files
    • 🧹 Proper cleanup of temporary files
    • ⚠️ Clear confirmation before removing existing installations
    • 🛠️ Graceful handling of partial installations
    • 💾 Automatic backup before uninstallation
  • 🗑️ Uninstallation

    • 🧽 Complete removal of all installed files
    • 📋 Option to keep or remove configuration files
    • 🎯 Works with both default and custom installation paths
    • 💾 Optional configuration backup

⚠️ Known Limitations

  • 💾 Configuration Management

    • 📁 Only backs up common configuration directories (~/.config/FTPRush and ~/.FTPRush)
    • 🏠 Does not back up files outside the user's home directory
    • 🔓 Backup is not encrypted
  • 🔗 System Integration

    • 🛤️ Not added to system PATH by default (use full path or create alias)
    • 🖥️ No desktop environment detection for optimal icon placement

🛠️ Development

🧪 Running Tests

This project includes a comprehensive test suite that runs in a Linux environment, including WSL (Windows Subsystem for Linux).

📋 Prerequisites

  • 🐚 Bash
  • 🦇 BATS (Bash Automated Testing System)
  • 🔍 ShellCheck (for static code analysis)

🚀 Running Tests

  1. Using WSL (Windows Subsystem for Linux):

    # Navigate to your project directory in WSL
    cd /mnt/g/Projects/FTP/FTPRush_Linux_Install_Script
    
    # Make the test script executable
    chmod +x run_tests.sh
    
    # Run the tests
    ./run_tests.sh
  2. On Native Linux:

    # Make the test script executable
    chmod +x run_tests.sh
    
    # Run the tests
    ./run_tests.sh

🎯 What the Tests Do

  1. 📊 Version Check: Verifies the --version flag works correctly
  2. ❓ Help System: Tests the --help flag and command-line help output
  3. ⚠️ Error Handling: Verifies proper error messages for invalid options
  4. ⚙️ Basic Functionality: Ensures the installer can be executed without errors

📁 Test Structure

  • 🧪 test/test_install_ftprush.bats: Main test file with test cases
  • 🛠️ test/test_helper/: Helper files for BATS testing
  • ⚙️ .shellcheckrc: Configuration for ShellCheck

📁 Test Structure

  • 🧪 test/test_install_ftprush.bats: Main test file with test cases
  • 🛠️ test/test_helper/: Helper files for BATS testing
  • ⚙️ .shellcheckrc: Configuration for ShellCheck

🚀 Future Enhancements

  • 🧪 Add more test cases for edge cases
  • 🔄 Implement CI/CD with GitHub Actions
  • 🖥️ Desktop environment detection for better integration
  • 🐧 Support for more Linux distributions
  • 📦 Package manager integration (deb/rpm)

🔍 Troubleshooting

⚠️ Common Issues & Solutions

🔐 Permission denied

Problem: Script fails with permission errors

Solution:

# ✅ Run with sudo privileges
sudo install_ftprush.sh
🌐 Download fails

Problem: Cannot download FTPRush archive

Solutions:

  • ✅ Check internet connection
  • ✅ Verify firewall settings
  • ✅ Try different network
💾 Extraction fails

Problem: Archive extraction errors

Solutions:

  • ✅ Ensure sufficient disk space in /tmp
  • ✅ Check /opt directory permissions
  • ✅ Verify archive integrity
🖥️ Desktop entry not appearing

Problem: FTPRush not in applications menu

Solutions:

# 🔄 Update desktop database
sudo update-desktop-database

# 🔄 Or logout and login again

🆘 Getting Help

Step Action Description
1️⃣ Check Output Review script error messages
2️⃣ Verify Privileges Ensure sudo access
3️⃣ Test Connection Verify internet connectivity
4️⃣ Check Space Ensure sufficient disk space
5️⃣ Verbose Mode Run with --verbose flag

📊 Project Information

⏱️ Development Stats

Time Invested Last Updated
41 hours and 57 minutes 2025-10-01 11:16:55 EST

🔗 Repository Links

🏠 Repository 🐛 Issues 📦 Releases

📄 License

This project is licensed under the GPL-3.0 License

📋 See the LICENSE file for details


📝 Disclaimer

This script is not affiliated with FTPRush. FTPRush is a trademark of its respective owners.



Made with ❤️ for the Linux community by ReadyPixels LLC

⭐ Star this repo

About

FTPRush Installer Script for Linux: Automated Download, Setup, and Desktop Entry Creation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages