<commit_before>sbrepo
======

static binary repository.

# Usage

```
sbrepo ls --endpoint s3://<bucket> github.com/yuuki/droot
sbrepo push --endpoint s3://<bucket> github.com/yuuki/droot ./droot
sbrepo pull --endpoint s3://<bucket> github.com/yuuki/droot /usr/local/bin
sbrepo sync --endpoint s3://<bucket> /usr/local/bin
```

# Repository Structure

```
s3://<bucket>/<host>/<user>/<project>/<date>/<bin>
s3://<bucket>/<host>/<user>/<project>/<date>/<bin>_VERSION (Option)
s3://<bucket>/<host>/<user>/<project>/<date>/<bin>_CHECKSUM (Option)
```<commit_msg>Add overview document to README<commit_after>sbrepo
======

Simple static binary repository manager on Amazon S3 as backend storage.

# Overview

`sbrepo` provides a simple way to store and deploy your static binary files such as Go binary. sbrepo pushes the binary files into your S3 bucket, builds the directory layout like `go get` does on the bucket, and pulls the binary files from the bucket.

The deployment of (internel) tools written by Go takes a lot more works, especially in the environment with many servers, than that of no-dependent LL scripts such as shell script, Perl, Python, Ruby). Git is an informat approach to the deployment, but git is not for binary management. The next approach is a package manager such apt or yum, but it takes a lot of trouble to make packages. The other approach is just to use a HTTP file server including S3, but it needs uniform and accessible location of the binary files and version management. There, `sbrepo` resolves the problem of the binary management.

# Usage

## Prepareation

- Create S3 bucket for `sbrepo`.
- Install `sbrepo` binary, see https://github.com/yuuki/sbrepo/releases .

## Commands

```
sbrepo ls --endpoint s3://<bucket> github.com/yuuki/droot
sbrepo push --endpoint s3://<bucket> github.com/yuuki/droot ./droot
sbrepo pull --endpoint s3://<bucket> github.com/yuuki/droot /usr/local/bin
sbrepo sync --endpoint s3://<bucket> /usr/local/bin
```

# Directory layout on S3 bucket

```
s3://<bucket>/<host>/<user>/<project>/<date>/
                                         -- <bin>
                                         -- meta.yml
```

The example below.

```
s3://sbrepo-repository/
|-- github.com/
    -- yuuki/
        -- droot/
            -- 20171013080011/
                -- droot
                -- meta.yml
            -- 20171014102929/
                -- droot
                -- meta.yml
    -- prometheus/
        -- prometheus/
            -- 20171012081234/
                -- prometheus
                -- promtool
                -- meta.yml
|-- ghe.internal/
    -- opsteam/
        -- tools
            -- 20171010071022/
                -- ec2_bootstrap
                -- ec2_build_ami
                -- mysql_create_slave_snapshot

```

# License

[The MIT License](./LICENSE).

# Author

[y_uuki](https://github.com/yuuki)
{'fraction_non_alphanumeric': 0.12777777777777777, 'fraction_numerical': 0.02638888888888889, 'mean_word_length': 2.3383545770567786, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 35, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '435194', 'n_tokens_mistral': 942, 'n_tokens_neox': 849, 'n_words': 276}