https://github.com/dencold/blt
blt - provides simple CLI superpowers.
https://github.com/dencold/blt
Last synced: 3 months ago
JSON representation
blt - provides simple CLI superpowers.
- Host: GitHub
- URL: https://github.com/dencold/blt
- Owner: dencold
- License: mit
- Created: 2014-01-26T20:58:43.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2015-04-11T18:29:48.000Z (about 11 years ago)
- Last Synced: 2025-12-16T18:33:00.786Z (7 months ago)
- Language: Python
- Size: 155 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# blt: provides simple CLI superpowers
**blt** is a python package that aims to make it easier for application
developers to wrap command line interfaces for the various tools they use day
to day. blt was inspired by Heroku's toolbelt, fabric, and clint. We hope
to stand on the shoulders of giants.
## Overview
At blt's root is the concept of a ``tool``, blt provides several tools out of
the box. Currently we have support for:
* AWS (S3)
* Django
* Heroku
* South (django database migrations)
These tools encapsulate commands that you would want to interface with each
system. For example, you might want to be able to push files to an S3 bucket
with the AWS tool, or you might want to run a migration using the South tool.
blt standardizes the interface for running the command and handles things like
configuration injection so you can easily differentiate between dev/staging/prod
settings when running a command.
## Real-world Example
Let's take a quick look at a practical example of blt in action. Here is a sample
command for running an AWS S3 sync on our staging environment:
```bash
blt e:staging aws.sync_s3 /path/to/my/dir
```
That's it! Running that command will pick up the staging environment
configuration, connect to S3, determine the changed files between the S3 bucket
and the files in /path/to/my/dir, and push them up to AWS. blt is able to
automatically grab things like AWS authentication keys for staging and inject
the settings into the runtime so blt can connect to the bucket. Pretty sweet!
## blt Grammar
blt has an opinionated command grammar and enforces a strict way of running
commands for tools. blt was designed to have a consistent run style so that no
matter what tool you are running commands for, it will have the same basic
format. Let's break down the aws run from above:
blt e:staging aws . sync_s3 /path/to/my/dir
^ ^ ^ ^ ^ ^
| | | | | |
| | | | | |
blt executable environment tool separator command args
## Installation
blt is available on [PyPi](https://pypi.python.org/pypi/blt) and installable through pip:
```bash
$ pip install blt
```
## More to come!
More documentaion/examples to come down the road!