https://github.com/red5d/ghbin
A tool for installing applications distributed as binary releases on GitHub.
https://github.com/red5d/ghbin
Last synced: 23 days ago
JSON representation
A tool for installing applications distributed as binary releases on GitHub.
- Host: GitHub
- URL: https://github.com/red5d/ghbin
- Owner: Red5d
- Created: 2021-07-28T18:27:10.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-21T22:31:17.000Z (almost 5 years ago)
- Last Synced: 2025-03-02T18:33:57.585Z (over 1 year ago)
- Language: Python
- Size: 3.91 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ghbin
=====
A tool for installing applications distributed as binary releases on GitHub.
Python Dependencies: requests, python-magic
Inspired by [ginstall.sh](https://github.com/whalehub/ginstall.sh)
### Disclaimer
I've tested this successfully with several different GitHub repositories that provide various binaries both as direct downloads like AppImages and in compressed tar/gz/zip files, but I can't guarantee it will work with all repositories and file formats. Issues and/or Pull Requests to resolve incompatibilities are welcome though.
### Features
* Works with most GitHub repositories (such as [owenthereal/ccat](https://github.com/owenthereal/ccat)) that have a Releases section with binaries (even if they're in a compressed tar/gz/zip file) available for download.
* Can list details of all configured repositories and the latest release version available.
* Moves downloaded binaries to the configured folder path (which you could add to your $PATH environment variable for convenience) and makes them executable.
### Usage
If no configuration file is found, a "first-run wizard" will guide you through the setup. You'll need a [GitHub Personal Access Token](https://github.com/settings/tokens) so the tool can use the GitHub API with higher rate limits.
Usage: python ghbin.py [command]
Config File: /home/daniel/.ghbin.json
A tool for installing applications distributed as binary releases on GitHub.
Run without parameters for a summary of all configured repositories.
Commands:
add - Add a GitHub repository to track with the format: user/reponame
install - Install an application from the configured repositories
Examples:
python ghbin.py add owenthereal/ccat
python ghbin.py install ccat
### Future Improvements
* Support for script files (*.py, *.sh, etc) that are distributed in the same way through GitHub Releases.
* In cases where there are multiple compatible Release items for download, the user currently selects which one to use each time. Ideally, this selection would be stored and correctly determined the next time even if the version number on the Release item has changed.
* Versioning / update-detection capability like a "real" package manager. The ability to track/determine the current version of an installed application and check if an update is available.
* The ability to setup overrides or specific install "instructions" for applications that include multiple binaries or supporting files.
* Better error detection/handling when something doesn't correctly download/extract/install correctly.