github.com/hhsnopek/up@v0.1.1/config/static.go (about)

     1  package config
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/pkg/errors"
     7  )
     8  
     9  // Static configuration.
    10  type Static struct {
    11  	// Dir containing static files.
    12  	Dir string `json:"dir"`
    13  }
    14  
    15  // Default implementation.
    16  func (s *Static) Default() error {
    17  	if s.Dir == "" {
    18  		s.Dir = "."
    19  	}
    20  
    21  	return nil
    22  }
    23  
    24  // Validate implementation.
    25  func (s *Static) Validate() error {
    26  	info, err := os.Stat(s.Dir)
    27  
    28  	if os.IsNotExist(err) {
    29  		return nil
    30  	}
    31  
    32  	if err != nil {
    33  		return errors.Wrap(err, ".dir")
    34  	}
    35  
    36  	if !info.IsDir() {
    37  		return errors.Errorf(".dir %s is not a directory", s.Dir)
    38  	}
    39  
    40  	return nil
    41  }