You've already forked dcmerge
							
							fix(dockerCompose): add ServiceUlimits.MergeFirstWin()
This commit is contained in:
		@@ -1002,6 +1002,28 @@ func (l *ServiceULimits) Equal(equalable Equalable) bool {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeFirstWin adds only the attributes of the passed ServiceULimits they are
 | 
			
		||||
// undefined.
 | 
			
		||||
func (l *ServiceULimits) MergeFirstWin(serviceULimits *ServiceULimits) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case l == nil && serviceULimits == nil:
 | 
			
		||||
		fallthrough
 | 
			
		||||
	case l != nil && serviceULimits == nil:
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	// WARN: It's not possible to change the memory pointer l *ServiceULimits to a new
 | 
			
		||||
	// initialized ServiceULimits without returning the serviceULimits it self.
 | 
			
		||||
	//
 | 
			
		||||
	// case l == nil && serviceULimits != nil:
 | 
			
		||||
	// 	l = NewServiceULimits()
 | 
			
		||||
	// 	fallthrough
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
		l.mergeFirstWinNProc(serviceULimits.NProc)
 | 
			
		||||
		l.mergeFirstWinNoFile(serviceULimits.NoFile)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeLastWin merges adds or overwrite the attributes of the passed
 | 
			
		||||
// ServiceULimits with the existing one.
 | 
			
		||||
func (l *ServiceULimits) MergeLastWin(serviceULimits *ServiceULimits) {
 | 
			
		||||
@@ -1024,6 +1046,19 @@ func (l *ServiceULimits) MergeLastWin(serviceULimits *ServiceULimits) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *ServiceULimits) mergeFirstWinNProc(nproc uint) {
 | 
			
		||||
	if l.NProc != nproc {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	l.NProc = nproc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *ServiceULimits) mergeFirstWinNoFile(noFile *ServiceULimitsNoFile) {
 | 
			
		||||
	if !l.NoFile.Equal(noFile) {
 | 
			
		||||
		l.NoFile.MergeFirstWin(noFile)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *ServiceULimits) mergeLastWinNProc(nproc uint) {
 | 
			
		||||
	if l.NProc != nproc {
 | 
			
		||||
		l.NProc = nproc
 | 
			
		||||
@@ -1067,6 +1102,8 @@ func (nf *ServiceULimitsNoFile) Equal(equalable Equalable) bool {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeFirstWin adds only the attributes of the passed ServiceULimits they are
 | 
			
		||||
// undefined.
 | 
			
		||||
func (nf *ServiceULimitsNoFile) MergeFirstWin(serviceULimitsNoFile *ServiceULimitsNoFile) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case nf == nil && serviceULimitsNoFile == nil:
 | 
			
		||||
@@ -1089,7 +1126,7 @@ func (nf *ServiceULimitsNoFile) MergeFirstWin(serviceULimitsNoFile *ServiceULimi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeLastWin merges adds or overwrite the attributes of the passed
 | 
			
		||||
// ServiceULimits with the existing one.
 | 
			
		||||
// ServiceULimitsNoFile with the existing one.
 | 
			
		||||
func (nf *ServiceULimitsNoFile) MergeLastWin(serviceULimitsNoFile *ServiceULimitsNoFile) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case nf == nil && serviceULimitsNoFile == nil:
 | 
			
		||||
@@ -1164,6 +1201,8 @@ func (v *Volume) Equal(equalable Equalable) bool {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeFirstWin adds only the attributes of the passed Volume they are
 | 
			
		||||
// undefined.
 | 
			
		||||
func (v *Volume) MergeFirstWin(volume *Volume) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case v == nil && volume == nil:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user