Skip to main content

Helpers and wrappers for the Blunix engineering team.

Project description

# Blunix Toolkit

The Blunix Toolkit is a collection of Python glue-code that helps our
engineering team to uniformly collaborate on the development of the
already 100+ repositories we are maintaining inside our Github
organization.

The code is currently still undergoing rapid development but is already
distributed via PyPI.

## Installation
### System-wide
To install the `blunix-toolkit` system-wide, run:
```bash
sudo pip install blunix-toolkit
```

### User-Home
To install the `blunix-toolkit` in your user's home-directory, run:
```bash
pip install --user blunix-toolkit
```
Remember to add ~/.local/bin to your `$PATH` variable in your shell's
rc-file.

### Install in Python virtualenv
To install the `blunix-toolkit` into a Python virtualenv for contributing
to it, tun:
```bash
mkvirtualenv blunix-toolkit
setvirtualenvproject
make install
```

When the configuration file is accessed for the very first time, the
toolkit will ask you a set of questions regarding your name, email,
Github account, as well as your local development workspace layout.

Your answers will be marshaled to `~/.config/blunix/blunix.yaml`. This
is your individual Blunix engineering configuration file. Have a look at
it with:

```bash
blunix-config-edit
```

Please note, that you will need to use an
[API access token](https://github.com/settings/tokens) as your
Github password if you have enabled 2FA.

The toolkit core consists of a set of Python packages and modules around above
stated configuration file, as well as executable entry-point scripts that
leverage this API. These scripts can be found in the `bin/` directory.

In addition to this "core", it is possible to extend the local $SHELL
with some very useful environment variables and shell functions.

```bash
# Generate the shell-code
blunix-config-bash

# or automatically source it like this
source <(blunix-config-bash)
```

Take a look at your new environment. You should see all sorts of `BLUNIX_*`
variables and more.

```bash
set | grep -i blunix
```

# Getting started

Once your configuration file has been created you can run a set of useful
Github API requests, such as:

```bash
# list all repositories
blunix-gh-repos

# list all role-* repositories
blunix-gh-roles

# list all playbook-* repositories
blunix-gh-playbooks
```

You can now combine these scripts with the above shell-magic:

```bash
# Clone all role-* repositories to your $BLUNIX_ROOT_DIR_ROLES directory while
# additionally creating a virtualenv for each repo and setting the project
# directory to the repositories workspace directory.
blunix-gh-roles |\
cut -d/ -f2 |\
blunixForEach 'create=y clone=y blunixWorkon "$item"'

# Similar to the above, you can do the same with all Github playbook-* repositories.
blunix-gh-playbooks |\
cut -d/ -f2 |\
blunixForEach 'create=y clone=y blunixWorkon "$item"'
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
blunix_toolkit-0.1.17.tar.gz (5.7 kB) Copy SHA256 hash SHA256 Source None Dec 1, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page