Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thehxdev/aptgit
A package manager for Github releases
https://github.com/thehxdev/aptgit
api downloader go package-manager
Last synced: about 2 months ago
JSON representation
A package manager for Github releases
- Host: GitHub
- URL: https://github.com/thehxdev/aptgit
- Owner: thehxdev
- License: gpl-3.0
- Created: 2024-09-15T19:23:09.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-18T13:36:34.000Z (4 months ago)
- Last Synced: 2024-09-18T21:48:11.554Z (4 months ago)
- Topics: api, downloader, go, package-manager
- Language: Go
- Homepage:
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aptgit
aptgit is a package and version manager for Github releases.> [!WARNING]
> This project is in alpha stage.## Build
First install [GNU make](https://www.gnu.org/software/make/) and [Go compiler](https://go.dev). Then build aptgit:
```bash
make
```## Usage
> [!WARNING]
> The packages defined in [gpkgs](gpkgs) directory are only tested on Linux Mint 22 environment (other Linux systems must be OK) but macOS is not tested.Provide a config file and a package's definition to `aptgit` executable to download the specified file:
```bash
# Make required directories
mkdir -p ~/.aptgit/{downloads,installs,bin}# Copy package definitions to aptgit home
cp -r ./gpkgs ~/.aptgit# Get help message
aptgit help
```## Install
You can use GNU make to install aptgit. By default aptgit installs to `~/.local/bin` directory and default aptgit home is set to `~/.aptgit`.
You can go with defaults or change them:
```bash
# install with defaults
make install# install with modified paths
make install INSTALL_DIR=/path/to/install/directory APTGIT_HOME=/path/to/aptgit/home
```## Uninstall
In case you installed aptgit with default parameters:
```bash
rm -rf $HOME/.local/bin/aptgit $HOME/.aptgit
```## Todo!
- [ ] Implement `init`, `install`, `uninstall`, `upgrade`, `list-versions`, `latest-version`, `list-installed`, `switch`, `cleanup` sub-commands
- [X] Install and set custom version of a program
- [ ] Override aptgit and package parameters from command line
- [x] Ensure all required directories exist before any processing
- [ ] Structured logging
- [ ] Better error handling
- [ ] Process multiple packages concurrently
- [X] `aptgit.lock` file to keep metadata about installed packages (if needed - probably required for upgrading packages)
- [ ] Better naming, coding style and cleaner architecture
- [ ] Cleanup the source code and seperate modules cause it's a mess