Skip to content

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

No packages published

Languages