Skip to content

πŸš€ Automated system update tool for Ubuntu/Kubuntu - Updates APT, Snap, Flatpak with optional Timeshift snapshots

License

Notifications You must be signed in to change notification settings

NDXDeveloper/uubu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

uubu πŸš€

Update Upgrade Ubuntu - An automated system update tool for Ubuntu/Kubuntu written in Go.

Go Report Card Release

πŸ“‹ Description

uubu automates comprehensive system updates for Ubuntu-based distributions. It handles APT packages, Snap packages, Flatpak applications, system cleanup, and offers optional Timeshift snapshots for safe rollback.

✨ Features

  • πŸ”„ Complete System Updates: APT, Snap, and Flatpak packages
  • πŸ“Έ Timeshift Integration: Optional system snapshots before updates
  • 🧹 Automatic Cleanup: Removes obsolete packages and cleans cache
  • πŸ”’ Safety Checks: Root prevention, internet connectivity verification
  • 🎨 Colored Output: Clear, colored terminal messages
  • ⚑ Fast & Lightweight: Single binary with no dependencies
  • πŸ”§ Configurable: Flexible command-line options

πŸš€ Quick Start

Installation

From Release (Recommended)

# Download latest release
wget https://github.com/NDXdeveloper/uubu/releases/latest/download/uubu-linux-amd64
chmod +x uubu-linux-amd64
sudo mv uubu-linux-amd64 /usr/local/bin/uubu

From Source

git clone https://github.com/NDXdeveloper/uubu.git
cd uubu
make build
make install

Usage

# Basic system update
uubu

# Update with Timeshift snapshot
uubu -s

# Update without Snap packages
uubu --no-snap

# Update with full system upgrade
uubu --dist-upgrade

# Show help
uubu --help

# Show version
uubu --version

πŸ“– Command Line Options

Option Description
-h, --help Display help information
-v, --version Show version information
-s, --snapshot Create Timeshift snapshot before update
--dist-upgrade Perform full system upgrade (includes removing obsolete packages)
--no-snap Skip Snap package updates
--no-flatpak Skip Flatpak package updates
--no-reboot Don't prompt for reboot

πŸ› οΈ What uubu Does

  1. System Checks: Verifies non-root execution and internet connectivity
  2. Optional Snapshot: Creates Timeshift snapshot if requested
  3. APT Updates: Updates package lists, upgrades packages, dist-upgrade
  4. Snap Updates: Refreshes Snap packages (if installed)
  5. Flatpak Updates: Updates Flatpak applications (if installed)
  6. System Cleanup: Removes obsolete packages and cleans cache
  7. Reboot Check: Detects if reboot is required and prompts user

πŸ“‹ Requirements

  • Ubuntu 20.04+ or Kubuntu 20.04+
  • Go 1.19+ (for building from source)
  • sudo privileges for system updates
  • Optional: Timeshift (for snapshots)

πŸ”§ Development

Building

# Clone repository
git clone https://github.com/NDXdeveloper/uubu.git
cd uubu

# Build with version info
make build

# Run tests
make test

# Check code coverage
make test-coverage

# Development mode (auto-rebuild)
make dev

Testing

# Run all tests
make test

# Run tests with race detection
make test-verbose

# Quick tests (no integration)
make test-short

# Benchmarks
make bench

πŸ“¦ Project Structure

uubu/
β”œβ”€β”€ main.go           # Main application
β”œβ”€β”€ main_test.go      # Unit tests
β”œβ”€β”€ Makefile          # Build automation
β”œβ”€β”€ go.mod            # Go module file
β”œβ”€β”€ README.md         # This file
└── LICENSE           # MIT license

🚦 Safety Features

  • Root Prevention: Refuses to run as root user
  • Internet Check: Verifies connectivity before updates
  • Error Handling: Graceful handling of command failures
  • Snapshot Support: Optional system backup via Timeshift
  • Reboot Detection: Warns when restart is required

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

Nicolas DEOUX NDXDev (NDXDev@gmail.com)

πŸ™ Acknowledgments

  • Original bash script inspiration
  • Ubuntu/Kubuntu community
  • Go programming language team

⭐ Star this repository if you find it useful!

About

πŸš€ Automated system update tool for Ubuntu/Kubuntu - Updates APT, Snap, Flatpak with optional Timeshift snapshots

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published