github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/instanceid/instanceid.go (about)

     1  package instanceid
     2  
     3  import (
     4  	"sync"
     5  
     6  	"github.com/google/uuid"
     7  )
     8  
     9  func Make() string {
    10  	return uuid.New().String()
    11  }
    12  
    13  var (
    14  	id string
    15  	mu sync.Mutex
    16  )
    17  
    18  func ID() string {
    19  	mu.Lock()
    20  	defer mu.Unlock()
    21  
    22  	if id == "" {
    23  		id = Make()
    24  	}
    25  	return id
    26  }