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