@@ -11,7 +11,8 @@ class Packer(object):
1111 """
1212
1313 def __init__ (self , packerfile , exc = None , only = None , vars = None ,
14- var_file = None , exec_path = DEFAULT_PACKER_PATH ):
14+ var_file = None , exec_path = DEFAULT_PACKER_PATH , out_iter = None ,
15+ err_iter = None ):
1516 """
1617 :param string packerfile: Path to Packer template file
1718 :param list exc: List of builders to exclude
@@ -29,20 +30,33 @@ def __init__(self, packerfile, exc=None, only=None, vars=None,
2930 self .only = self ._validate_argtype (only or [], list )
3031 self .vars = self ._validate_argtype (vars or {}, dict )
3132
33+ kwargs = dict ()
34+ if out_iter is not None :
35+ kwargs ["_out" ] = out_iter
36+ kwargs ["_out_bufsize" ] = 1
37+ if err_iter is not None :
38+ kwargs ["_err" ] = err_iter
39+ kwargs ["_out_bufsize" ] = 1
40+
3241 self .packer = sh .Command (exec_path )
42+ self .packer = self .packer .bake (** kwargs )
3343
34- def build (self , parallel = True , debug = False , force = False ):
44+ def build (
45+ self , parallel = True , debug = False , force = False ,
46+ machine_readable = False ):
3547 """Executes a `packer build`
3648
3749 :param bool parallel: Run builders in parallel
3850 :param bool debug: Run in debug mode
3951 :param bool force: Force artifact output even if exists
52+ :param bool machine_readable: Make output machine-readable
4053 """
4154 self .packer_cmd = self .packer .build
4255
4356 self ._add_opt ('-parallel=true' if parallel else None )
4457 self ._add_opt ('-debug' if debug else None )
4558 self ._add_opt ('-force' if force else None )
59+ self ._add_opt ('-machine-readable' if machine_readable else None )
4660 self ._append_base_arguments ()
4761 self ._add_opt (self .packerfile )
4862
0 commit comments