tools.aw_id
11:3a967e85c0ca
Go to Latest
tools.aw_id/src/main.go
.. v1.r202504.1
. Переезд на go 1.23
+ Новый тип версий. Теперь можно всю версию генерировать автоматом. Уникальность осуществляется за счёт точности в 0.01 секунды.
1 // devel.a0fs.ru -- aw_id -- v1.r202504.1 //
3 Утилиты генерирования полезных в работе ID
16 "github.com/google/uuid"
29 func get_time_id(id_type int) string {
30 cur_time := time.Now()
31 var time_format string = time.RFC3339
35 time_format = "20060102-150405"
37 time_format = "02.01.2006 15:04:05"
39 time_format = "2006-01-02 15:04:05"
41 time_format = "2006-01-02 15-04-05"
43 time_format = "2006-01-02_15-04-05"
45 time_format = "20060102"
47 time_format = "200601"
50 return cur_time.Format(time_format)
53 func get_uuid() string {
58 func get_ver_id() string {
59 return fmt.Sprintf("v0.r%s.1", get_time_id(TIME_ID_SHORT2))
62 func get_ver_id2() string {
63 return fmt.Sprintf("0.%s.1", get_time_id(TIME_ID_SHORT2))
66 func get_ver_auto_tag() string {
67 var auto_version string = "AAAAAA"
69 buf := make([]byte, 8)
70 buf_time := time.Now()
71 buf_u64, err := strconv.ParseUint(buf_time.Format("02150405"), 10, 64)
73 buf_u64 = buf_u64*uint64(100) + uint64(buf_time.Nanosecond()/10000000)
74 _, err = binary.Encode(buf, binary.BigEndian, buf_u64)
76 auto_version = base64.RawURLEncoding.EncodeToString(buf[4:])
84 func get_ver_id3() string {
85 return fmt.Sprintf("v0.r%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
88 func get_ver_id4() string {
89 return fmt.Sprintf("0.%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
92 func prnt_out(k, v string) {
93 fmt.Printf("%10s : %s\n", k, v)
97 prnt_out("uuid", get_uuid())
98 prnt_out("ts", get_time_id(TIME_ID))
99 prnt_out("tss", get_time_id(TIME_ID_SHORT))
100 prnt_out("tss2", get_time_id(TIME_ID_SHORT2))
101 prnt_out("hr", get_time_id(TIME_HUM))
102 prnt_out("hrr", get_time_id(TIME_HUM_RU))
103 prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
104 prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
105 prnt_out("v", get_ver_id())
106 prnt_out("va", get_ver_id3())
107 prnt_out("vs", get_ver_id2())
108 prnt_out("vsa", get_ver_id4())
113 if len(os.Args) > 1 {
116 fmt.Println(get_uuid())
118 fmt.Println(get_time_id(TIME_ID))
120 fmt.Println(get_time_id(TIME_HUM))
122 fmt.Println(get_time_id(TIME_HUM_RU))
124 fmt.Println(get_time_id(TIME_HUM_SAFE))
126 fmt.Println(get_time_id(TIME_HUM_SAFE2))
128 fmt.Println(get_time_id(TIME_ID_SHORT))
130 fmt.Println(get_time_id(TIME_ID_SHORT2))
132 fmt.Println(get_ver_id())
134 fmt.Println(get_ver_id3())
136 fmt.Println(get_ver_id2())
138 fmt.Println(get_ver_id4())
140 fmt.Println("Need one of: ")
141 fmt.Println(" uuid, ts, tss, tss2, hr, hrr, hrs, hrs2,")
142 fmt.Println(" v, va, vs, vsa")