github.com/homburg/packer@v0.6.1-0.20140528012651-1dcaf1716848/command/fix/fixer.go (about)

     1  package fix
     2  
     3  // A Fixer is something that can perform a fix operation on a template.
     4  type Fixer interface {
     5  	// Fix takes a raw map structure input, potentially transforms it
     6  	// in some way, and returns the new, transformed structure. The
     7  	// Fix method is allowed to mutate the input.
     8  	Fix(input map[string]interface{}) (map[string]interface{}, error)
     9  
    10  	// Synopsis returns a string description of what the fixer actually
    11  	// does.
    12  	Synopsis() string
    13  }
    14  
    15  // Fixers is the map of all available fixers, by name.
    16  var Fixers map[string]Fixer
    17  
    18  // FixerOrder is the default order the fixers should be run.
    19  var FixerOrder []string
    20  
    21  func init() {
    22  	Fixers = map[string]Fixer{
    23  		"iso-md5":             new(FixerISOMD5),
    24  		"createtime":          new(FixerCreateTime),
    25  		"pp-vagrant-override": new(FixerVagrantPPOverride),
    26  		"virtualbox-gaattach": new(FixerVirtualBoxGAAttach),
    27  		"virtualbox-rename":   new(FixerVirtualBoxRename),
    28  		"vmware-rename":       new(FixerVMwareRename),
    29  	}
    30  
    31  	FixerOrder = []string{
    32  		"iso-md5",
    33  		"createtime",
    34  		"virtualbox-gaattach",
    35  		"pp-vagrant-override",
    36  		"virtualbox-rename",
    37  		"vmware-rename",
    38  	}
    39  }