33 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
//go:build integration
 | 
						|
 | 
						|
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"os"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/jmhodges/clock"
 | 
						|
 | 
						|
	blog "github.com/letsencrypt/boulder/log"
 | 
						|
)
 | 
						|
 | 
						|
// Clock functions similarly to clock.New(), but the returned value can be
 | 
						|
// changed using the FAKECLOCK environment variable if the 'integration' build
 | 
						|
// flag is set.
 | 
						|
//
 | 
						|
// The FAKECLOCK env var is in the time.UnixDate format, returned by `date -d`.
 | 
						|
func Clock() clock.Clock {
 | 
						|
	if tgt := os.Getenv("FAKECLOCK"); tgt != "" {
 | 
						|
		targetTime, err := time.Parse(time.UnixDate, tgt)
 | 
						|
		FailOnError(err, fmt.Sprintf("cmd.Clock: bad format for FAKECLOCK: %v\n", err))
 | 
						|
 | 
						|
		cl := clock.NewFake()
 | 
						|
		cl.Set(targetTime)
 | 
						|
		blog.Get().Debugf("Time was set to %v via FAKECLOCK", targetTime)
 | 
						|
		return cl
 | 
						|
	}
 | 
						|
 | 
						|
	return clock.New()
 | 
						|
}
 |