README.md in s3repo-0.3.4 vs README.md in s3repo-1.0.0
- old
+ new
@@ -1,17 +1,76 @@
s3repo
=========
[![Gem Version](https://img.shields.io/gem/v/s3repo.svg)](https://rubygems.org/gems/s3repo)
[![Dependency Status](https://img.shields.io/gemnasium/amylum/s3repo.svg)](https://gemnasium.com/amylum/s3repo)
-[![Code Climate](https://img.shields.io/codeclimate/github/amylum/s3repo.svg)](https://codeclimate.com/github/amylum/s3repo)
-[![Coverage Status](https://img.shields.io/coveralls/amylum/s3repo.svg)](https://coveralls.io/r/amylum/s3repo)
-[![Build Status](https://img.shields.io/travis/amylum/s3repo.svg)](https://travis-ci.org/amylum/s3repo)
+[![Build Status](https://img.shields.io/circleci/project/amylum/s3repo.svg)](https://circleci.com/gh/amylum/s3repo)
+[![Coverage Status](https://img.shields.io/codecov/c/github/amylum/s3repo.svg)](https://codecov.io/github/amylum/s3repo)
+[![Code Quality](https://img.shields.io/codacy/eef971ff937642219c1d4094001c33e7.svg)](https://www.codacy.com/app/akerl/s3repo)
[![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://tldrlegal.com/license/mit-license)
Simple library for interacting with an Archlinux repo stored in S3
## Usage
+
+### From the command line
+
+This tool provides an `s3repo` script that can be used to manage an S3 bucket with packages. It is configured via environment variable:
+
+* AWS_ACCESS_KEY_ID -- Used by the AWS API library to authenticate for the S3 bucket
+* AWS_SECRET_ACCESS_KEY -- Used by the AWS API library to authenticate for the S3 bucket
+* AWS_REGION -- Used by the AWS API library to know which region to use for the bucket
+* S3_BUCKET -- Controls which S3 bucket is used for packages
+* MAKEPKG_FLAGS -- Flags used for makepkg calls when building packages
+* S3REPO_TMPDIR -- Sets the temp path for local cache of metadata files. Optional, otherwise looks up a path from the system
+* S3REPO_SIGN_DB -- Set to sign the DB metadata
+* S3REPO_SIGN_PACKAGES -- Set to sign the packages
+
+#### 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
+```
+
+### From Ruby code
+
+I use this primarily for serving the packages using [amylum/server](https://github.com/amylum/server). Like the command line tool, it expects AWS API credentials via environment variables, but you can pass in the bucket using either environmnt or a parameter when creating your S3Repo object:
+
+```
+repo = S3Repo.new(bucket: 'my_bucket')
+```
+
+You can call build_packages, add_packages, remove_packages, and prune_files on this, which work almost exactly as their command line counterparts above.
+
+The library also offers `.packages` and `.signatures`, which return arrays of packages and signatures in the bucket. You can use `.include? 'package_name'` to check for a package.
+
+To get the contents of a file, call `.serve 'package_name'`.
## Installation
gem install s3repo