func (c *TemplateConfig) Merge(o *TemplateConfig) *TemplateConfig {
	if c == nil {
		if o == nil {
			return nil
		}
		return o.Copy()
	}

	if o == nil {
		return c.Copy()
	}

	r := c.Copy()

	if o.Backup != nil {
		r.Backup = o.Backup
	}

	if o.Command != nil {
		r.Command = o.Command
	}

	if o.CommandTimeout != nil {
		r.CommandTimeout = o.CommandTimeout
	}

	if o.Contents != nil {
		r.Contents = o.Contents
	}

	if o.CreateDestDirs != nil {
		r.CreateDestDirs = o.CreateDestDirs
	}

	if o.Destination != nil {
		r.Destination = o.Destination
	}

	if o.ErrMissingKey != nil {
		r.ErrMissingKey = o.ErrMissingKey
	}

	if o.Exec != nil {
		r.Exec = r.Exec.Merge(o.Exec)
	}

	if o.Perms != nil {
		r.Perms = o.Perms
	}

	if o.Source != nil {
		r.Source = o.Source
	}

	if o.Wait != nil {
		r.Wait = r.Wait.Merge(o.Wait)
	}

	if o.LeftDelim != nil {
		r.LeftDelim = o.LeftDelim
	}

	if o.RightDelim != nil {
		r.RightDelim = o.RightDelim
	}

	return r
}
func (c *TemplateConfig) Merge(o *TemplateConfig) *TemplateConfig {
	if c == nil {
		if o == nil {
			return nil
		}
		return o.Copy()
	}

	if o == nil {
		return c.Copy()
	}

	r := c.Copy()

	if o.Backup != nil {
		r.Backup = o.Backup
	}

	if o.Command != nil {
		r.Command = o.Command
	}

	if o.CommandTimeout != nil {
		r.CommandTimeout = o.CommandTimeout
	}

	if o.Contents != nil {
		r.Contents = o.Contents
	}

	if o.CreateDestDirs != nil {
		r.CreateDestDirs = o.CreateDestDirs
	}

	if o.Destination != nil {
		r.Destination = o.Destination
	}

	if o.ErrMissingKey != nil {
		r.ErrMissingKey = o.ErrMissingKey
	}

	if o.Exec != nil {
		r.Exec = r.Exec.Merge(o.Exec)
	}

	if o.Perms != nil {
		r.Perms = o.Perms
	}

	if o.Source != nil {
		r.Source = o.Source
	}

	if o.Wait != nil {
		r.Wait = r.Wait.Merge(o.Wait)
	}

	if o.LeftDelim != nil {
		r.LeftDelim = o.LeftDelim
	}

	if o.RightDelim != nil {
		r.RightDelim = o.RightDelim
	}

	return r
}
func ( c * TemplateConfig ) Merge ( o * TemplateConfig ) * TemplateConfig { if c == nil { if o == nil { return nil } return o . Copy ( ) } if o == nil { return c . Copy ( ) } r := c . Copy ( ) if o . Backup != nil { r . Backup = o . Backup } if o . Command != nil { r . Command = o . Command } if o . CommandTimeout != nil { r . CommandTimeout = o . CommandTimeout } if o . Contents != nil { r . Contents = o . Contents } if o . CreateDestDirs != nil { r . CreateDestDirs = o . CreateDestDirs } if o . Destination != nil { r . Destination = o . Destination } if o . ErrMissingKey != nil { r . ErrMissingKey = o . ErrMissingKey } if o . Exec != nil { r . Exec = r . Exec . Merge ( o . Exec ) } if o . Perms != nil { r . Perms = o . Perms } if o . Source != nil { r . Source = o . Source } if o . Wait != nil { r . Wait = r . Wait . Merge ( o . Wait ) } if o . LeftDelim != nil { r . LeftDelim = o . LeftDelim } if o . RightDelim != nil { r . RightDelim = o . RightDelim } return r }
// Merge combines all values in this configuration with the values in the other
// configuration, with values in the other configuration taking precedence.
// Maps and slices are merged, most other values are overwritten. Complex
// structs define their own merge functionality.
Merge combines all values in this configuration with the values in the other configuration with values in the other configuration taking precedence . Maps and slices are merged most other values are overwritten . Complex structs define their own merge functionality .