s3repo
Simple library for interacting with an Archlinux repo stored in S3
Usage
The canonical usage of this tool is by my personal repo, which uses s3repo.
Config file
The config file is used to provide information about the repo:
repo_name: # this is used to name the metadata DB file for the repo
bucket: # where to upload the files
region: # what AWS region the bucket is in
makepkg_flags: # any flags to pass to makepkg
key: # GPG key ID to use for signing, assuming that signing is enabled
sign_db: # true/false to control signing
sign_packages: # true/false to control signing
template_dir: # where to find repo templates
template_params: # a key-value store of details to use in the templates
example_key: example_value
Managing the repo
Build a package
This assumes you're in the parent directory of your package's directory, which should contain its PKGBUILD and any other files it needs. It's essentially a wrapper around makepkg.
s3repo build bash
Upload a package
This takes an already built package and uploads its .pkg.tar.xz (and optionally .pkg.tar.xz.sig) to S3.
s3repo upload bash
Remove a package
This removes a named package from the repo metdata (it doesn't remove the actual package files, which you can do after this using prune).
s3repo remove bash-amylum-4.3p42_2-1-x86_64
Prune packages
This removes any files from S3 that aren't referenced in the metadata DB.
s3repo prune
Installation
gem install s3repo
License
s3repo is released under the MIT License. See the bundled LICENSE file for details.