Repository URL to install this package:
|
Version:
1.0.0b1 ▾
|
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function
import logging
import click
from ruamel.yaml import YAML
from freckles_cli.freckles_base_cli import run_frecklet, handle_exception
yaml = YAML(typ="safe")
log = logging.getLogger("freckles")
@click.command()
@click.pass_context
def read_stdin(ctx):
"""
Reads frecklet data from stdin, then executes.
Either pipe in your frecklet data ala:
echo '[{"debug-var":{"var": "ansible_facts"}}]' | freckles read-stdin
Or type it in manually after starting 'freckles read-stdin'.
In the latter case, press Ctrl-d three times to indicate you
are finished.
"""
frecklet_data = []
stream = click.get_text_stream("stdin", encoding="utf-8")
for line in stream:
frecklet_data.append(line)
frecklet_data = "".join(frecklet_data)
freckles_context = ctx.obj["context"]
run_config = ctx.obj["run_config"]
extra_vars = ctx.obj["extra_vars"]
try:
frecklet, frecklet_name = freckles_context.load_frecklet(
frecklet_data, validate=True
)
run_frecklet(
ctx=ctx,
frecklet=frecklet,
freckles_context=freckles_context,
run_config=run_config,
vars=extra_vars,
dump_frecklet=False,
)
except (Exception) as e:
handle_exception(e)