Files
bob-builder-1/bob/cli.py
T
2014-03-12 13:14:50 -04:00

82 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
"""Usage: bob build <formula>
bob deploy <formula> [--overwrite]
Build formula and optionally deploy it.
Options:
-h --help
--overwrite allow overwriting of deployed archives.
Configuration:
Environment Variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_BUCKET
"""
import os
from docopt import docopt
from .models import Formula
def build(formula):
f = Formula(path=formula)
try:
assert f.exists
except AssertionError:
print 'Formula {} doesn\'t appear to exist.'.format(formula)
exit(1)
print 'Building {}'.format(formula)
# Dependency metadata, extracted from bash comments.
deps = f.depends_on
print
if deps:
print 'Resolving dependencies... found {}:'.format(len(deps))
for dep in deps:
print ' - {}'.format(dep)
print
# CLI lies ahead.
f.build()
return f
# Tarball
# Upload to an s3 bucket
# Then, sidestep.
def deploy(formula, overwrite):
f = build(formula)
print 'Archiving.'
f.archive()
print 'Deploying.'
f.deploy(allow_overwrite=overwrite)
def dispatch():
args = docopt(__doc__)
formula = args['<formula>']
do_build = args['build']
do_deploy = args['deploy']
do_overwrite = args['--overwrite']
if do_build:
build(formula)
if do_deploy:
deploy(formula, overwrite=do_overwrite)