tools.aw_id
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 {