github.com/SupersunnySea/draft@v0.16.0/pkg/builder/ulid.go (about)

     1  package builder
     2  
     3  import (
     4  	"math/rand"
     5  	"time"
     6  
     7  	"github.com/oklog/ulid"
     8  )
     9  
    10  func getulid() string { return <-ulidc }
    11  
    12  // A channel which returns build ulids.
    13  var ulidc = make(chan string)
    14  
    15  func init() {
    16  	rnd := rand.New(rand.NewSource(time.Now().UTC().UnixNano()))
    17  	go func() {
    18  		for {
    19  			ulidc <- ulid.MustNew(ulid.Timestamp(time.Now().UTC()), rnd).String()
    20  		}
    21  	}()
    22  }