code.vegaprotocol.io/vega@v0.79.0/paths/interface.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package paths
    17  
    18  // nolint: interfacebloat
    19  type Paths interface {
    20  	CreateCachePathFor(CachePath) (string, error)
    21  	CreateCacheDirFor(CachePath) (string, error)
    22  	CreateConfigPathFor(ConfigPath) (string, error)
    23  	CreateConfigDirFor(ConfigPath) (string, error)
    24  	CreateDataPathFor(DataPath) (string, error)
    25  	CreateDataDirFor(DataPath) (string, error)
    26  	CreateStatePathFor(StatePath) (string, error)
    27  	CreateStateDirFor(StatePath) (string, error)
    28  	CachePathFor(CachePath) string
    29  	ConfigPathFor(ConfigPath) string
    30  	DataPathFor(DataPath) string
    31  	StatePathFor(StatePath) string
    32  }
    33  
    34  // New instantiates the specific implementation of the Paths interface based on
    35  // the value of the customHome. If a customHome is specified the custom
    36  // implementation CustomPaths is returned, the standard DefaultPaths otherwise.
    37  func New(customHome string) Paths {
    38  	if len(customHome) != 0 {
    39  		return &CustomPaths{
    40  			CustomHome: customHome,
    41  		}
    42  	}
    43  
    44  	return &DefaultPaths{}
    45  }