$ show libsgh/chrome_updater
This is a desktop application built with Go and the Fyne GUI framework that manages updates for portable Chrome installations and Chrome++ (a Chrome enhancement tool). It provides a graphical interface to check for the latest Chrome versions across stable, beta, dev, and canary branches, download them using a multi-threaded downloader with resume support, and extract 7z archives. It also supports updating Chrome++ from GitHub releases, system tray integration with auto-update scheduling, proxy configuration, and localization (English/Chinese). The application communicates with Google's Omaha update protocol (via XML requests to tools.google.com) and a custom web service (chrome.noki.eu.org) to fetch version information. The codebase demonstrates solid engineering practices including data binding, concurrent downloads, and a clean i18n system using embedded TOML files.
The LLM identified 2 files worth highlighting for reuse:
Implements a robust, multi-threaded HTTP downloader with configurable chunk size, retry logic, progress reporting via Fyne progress bar, and resume support via a progress file (.gdl). The Downloader struct encapsulates all download state, uses atomic counters for thread-safe progress tracking, and supports cancellation via context. This component is self-contained (only depends on standard library and Fyne widget) and could be extracted into a reusable library for any Go application needing high-performance downloads.
Provides a clean internationalization system using embedded TOML language files. It loads locale strings from the embedded 'lang' directory, supports fallback to English, and exposes LoadString and LoadStringList functions. The locale_windows.go file implements platform-specific locale detection via Windows API. This pattern is reusable for any Go application needing simple i18n without external dependencies.