github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/performance_mode.go (about)

     1  package ddevapp
     2  
     3  import (
     4  	"github.com/ddev/ddev/pkg/config/types"
     5  	"github.com/ddev/ddev/pkg/globalconfig"
     6  )
     7  
     8  // GetPerformanceMode returns performance mode config respecting defaults.
     9  func (app *DdevApp) GetPerformanceMode() types.PerformanceMode {
    10  	switch app.PerformanceMode {
    11  	case types.PerformanceModeEmpty, types.PerformanceModeGlobal:
    12  		return globalconfig.DdevGlobalConfig.GetPerformanceMode()
    13  	default:
    14  		return app.PerformanceMode
    15  	}
    16  }
    17  
    18  // SetPerformanceMode sets the performance mode config.
    19  func (app *DdevApp) SetPerformanceMode(performanceMode string) *DdevApp {
    20  	if types.IsValidPerformanceMode(performanceMode, types.ConfigTypeProject) {
    21  		app.PerformanceMode = performanceMode
    22  	}
    23  
    24  	return app
    25  }
    26  
    27  // IsNFSMountEnabled determines whether NFS is enabled.
    28  func (app *DdevApp) IsNFSMountEnabled() bool {
    29  	return !app.IsMutagenEnabled() && app.GetPerformanceMode() == types.PerformanceModeNFS
    30  }