github.phpd.cn/hashicorp/packer@v1.3.2/provisioner/shell-local/provisioner.go (about)

     1  package shell
     2  
     3  import (
     4  	sl "github.com/hashicorp/packer/common/shell-local"
     5  	"github.com/hashicorp/packer/packer"
     6  )
     7  
     8  type Provisioner struct {
     9  	config sl.Config
    10  }
    11  
    12  func (p *Provisioner) Prepare(raws ...interface{}) error {
    13  	err := sl.Decode(&p.config, raws...)
    14  	if err != nil {
    15  		return err
    16  	}
    17  
    18  	err = sl.Validate(&p.config)
    19  	if err != nil {
    20  		return err
    21  	}
    22  
    23  	return nil
    24  }
    25  
    26  func (p *Provisioner) Provision(ui packer.Ui, _ packer.Communicator) error {
    27  	_, retErr := sl.Run(ui, &p.config)
    28  	if retErr != nil {
    29  		return retErr
    30  	}
    31  
    32  	return nil
    33  }
    34  
    35  func (p *Provisioner) Cancel() {
    36  	// Just do nothing. When the process ends, so will our provisioner
    37  }