tools.aw_id

Yohn Y. 2025-04-09 Parent:05d07cc3040d Child:223ba01da43a

11:3a967e85c0ca Browse Files

.. v1.r202504.1 . Переезд на go 1.23 + Новый тип версий. Теперь можно всю версию генерировать автоматом. Уникальность осуществляется за счёт точности в 0.01 секунды.

src/go.mod src/go.sum src/main.go

     1.1 --- a/src/go.mod	Sat Jul 06 20:07:08 2024 +0300
     1.2 +++ b/src/go.mod	Wed Apr 09 20:20:05 2025 +0300
     1.3 @@ -1,5 +1,5 @@
     1.4  module main
     1.5  
     1.6 -go 1.18
     1.7 +go 1.23.1
     1.8  
     1.9 -require github.com/google/uuid v1.3.0 // indirect
    1.10 +require github.com/google/uuid v1.6.0
     2.1 --- a/src/go.sum	Sat Jul 06 20:07:08 2024 +0300
     2.2 +++ b/src/go.sum	Wed Apr 09 20:20:05 2025 +0300
     2.3 @@ -1,2 +1,2 @@
     2.4 -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
     2.5 -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
     2.6 +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
     2.7 +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
     3.1 --- a/src/main.go	Sat Jul 06 20:07:08 2024 +0300
     3.2 +++ b/src/main.go	Wed Apr 09 20:20:05 2025 +0300
     3.3 @@ -1,4 +1,4 @@
     3.4 -// devel.a0fs.ru -- aw_id -- v1.r202407.1 //
     3.5 +// devel.a0fs.ru -- aw_id -- v1.r202504.1 //
     3.6  /*
     3.7    Утилиты генерирования полезных в работе ID
     3.8  */
     3.9 @@ -9,6 +9,10 @@
    3.10  	"os"
    3.11  	"time"
    3.12  
    3.13 +	"encoding/base64"
    3.14 +	"encoding/binary"
    3.15 +	"strconv"
    3.16 +
    3.17  	"github.com/google/uuid"
    3.18  )
    3.19  
    3.20 @@ -59,6 +63,32 @@
    3.21  	return fmt.Sprintf("0.%s.1", get_time_id(TIME_ID_SHORT2))
    3.22  }
    3.23  
    3.24 +func get_ver_auto_tag() string {
    3.25 +	var auto_version string = "AAAAAA"
    3.26 +
    3.27 +	buf := make([]byte, 8)
    3.28 +	buf_time := time.Now()
    3.29 +	buf_u64, err := strconv.ParseUint(buf_time.Format("02150405"), 10, 64)
    3.30 +	if err == nil {
    3.31 +		buf_u64 = buf_u64*uint64(100) + uint64(buf_time.Nanosecond()/10000000)
    3.32 +		_, err = binary.Encode(buf, binary.BigEndian, buf_u64)
    3.33 +		if err == nil {
    3.34 +			auto_version = base64.RawURLEncoding.EncodeToString(buf[4:])
    3.35 +
    3.36 +		}
    3.37 +	}
    3.38 +
    3.39 +	return auto_version
    3.40 +}
    3.41 +
    3.42 +func get_ver_id3() string {
    3.43 +	return fmt.Sprintf("v0.r%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
    3.44 +}
    3.45 +
    3.46 +func get_ver_id4() string {
    3.47 +	return fmt.Sprintf("0.%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
    3.48 +}
    3.49 +
    3.50  func prnt_out(k, v string) {
    3.51  	fmt.Printf("%10s : %s\n", k, v)
    3.52  }
    3.53 @@ -73,7 +103,9 @@
    3.54  	prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
    3.55  	prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
    3.56  	prnt_out("v", get_ver_id())
    3.57 +	prnt_out("va", get_ver_id3())
    3.58  	prnt_out("vs", get_ver_id2())
    3.59 +	prnt_out("vsa", get_ver_id4())
    3.60  	fmt.Println("")
    3.61  }
    3.62  
    3.63 @@ -98,10 +130,16 @@
    3.64  			fmt.Println(get_time_id(TIME_ID_SHORT2))
    3.65  		case "v":
    3.66  			fmt.Println(get_ver_id())
    3.67 +		case "va":
    3.68 +			fmt.Println(get_ver_id3())
    3.69  		case "vs":
    3.70  			fmt.Println(get_ver_id2())
    3.71 +		case "vsa":
    3.72 +			fmt.Println(get_ver_id4())
    3.73  		default:
    3.74 -			fmt.Println("Need one of: uuid, ts, tss, tss2, hr, hrr, hrs, hrs2, v, vs")
    3.75 +			fmt.Println("Need one of: ")
    3.76 +			fmt.Println("  uuid, ts, tss, tss2, hr, hrr, hrs, hrs2,")
    3.77 +			fmt.Println("  v, va, vs, vsa")
    3.78  		}
    3.79  		fmt.Println("")
    3.80  	} else {