tools.aw_id
12:223ba01da43a
Go to Latest
tools.aw_id/src/main.go
* Новые автоматические версии выпускается в форме, пригодном для сортировки
1 // devel.a0fs.ru -- aw_id -- v1.r202504.2 //
3 Утилиты генерирования полезных в работе ID
14 "github.com/google/uuid"
27 func get_time_id(id_type int) string {
28 cur_time := time.Now()
29 var time_format string = time.RFC3339
33 time_format = "20060102-150405"
35 time_format = "02.01.2006 15:04:05"
37 time_format = "2006-01-02 15:04:05"
39 time_format = "2006-01-02 15-04-05"
41 time_format = "2006-01-02_15-04-05"
43 time_format = "20060102"
45 time_format = "200601"
48 return cur_time.Format(time_format)
51 func get_uuid() string {
56 func get_ver_id() string {
57 return fmt.Sprintf("v0.r%s.1", get_time_id(TIME_ID_SHORT2))
60 func get_ver_id2() string {
61 return fmt.Sprintf("0.%s.1", get_time_id(TIME_ID_SHORT2))
64 func get_ver_auto_tag() string {
66 var auto_version []byte = []byte{
70 var CD [CDB]byte = [CDB]byte{'0', '1', '2', '3', '4', '5', '6',
71 '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
72 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
73 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
74 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
75 't', 'u', 'v', 'w', 'x', 'y', 'z'}
77 buf_time := time.Now()
78 buf_u64, err := strconv.ParseUint(buf_time.Format("02150405"), 10, 64)
80 buf_u64 = buf_u64*uint64(100) + uint64(buf_time.Nanosecond()/10000000)
82 var buf_u64_idx uint64
85 for buf_u64 >= CDB && ar_idx > 0 {
86 buf_u64_idx = buf_u64 % CDB
88 auto_version[ar_idx] = CD[buf_u64_idx]
93 panic(fmt.Sprintf("get_ver_auto_tag: Need more size in buffer, value %v > %v", buf_u64, CDB))
96 auto_version[ar_idx] = CD[buf_u64]
103 return string(auto_version)
106 func get_ver_id3() string {
107 return fmt.Sprintf("v0.r%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
110 func get_ver_id4() string {
111 return fmt.Sprintf("0.%s.%s", get_time_id(TIME_ID_SHORT2), get_ver_auto_tag())
114 func prnt_out(k, v string) {
115 fmt.Printf("%10s : %s\n", k, v)
118 func make_all_ids() {
119 prnt_out("uuid", get_uuid())
120 prnt_out("ts", get_time_id(TIME_ID))
121 prnt_out("tss", get_time_id(TIME_ID_SHORT))
122 prnt_out("tss2", get_time_id(TIME_ID_SHORT2))
123 prnt_out("hr", get_time_id(TIME_HUM))
124 prnt_out("hrr", get_time_id(TIME_HUM_RU))
125 prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
126 prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
127 prnt_out("v", get_ver_id())
128 prnt_out("va", get_ver_id3())
129 prnt_out("vs", get_ver_id2())
130 prnt_out("vsa", get_ver_id4())
135 if len(os.Args) > 1 {
138 fmt.Println(get_uuid())
140 fmt.Println(get_time_id(TIME_ID))
142 fmt.Println(get_time_id(TIME_HUM))
144 fmt.Println(get_time_id(TIME_HUM_RU))
146 fmt.Println(get_time_id(TIME_HUM_SAFE))
148 fmt.Println(get_time_id(TIME_HUM_SAFE2))
150 fmt.Println(get_time_id(TIME_ID_SHORT))
152 fmt.Println(get_time_id(TIME_ID_SHORT2))
154 fmt.Println(get_ver_id())
156 fmt.Println(get_ver_id3())
158 fmt.Println(get_ver_id2())
160 fmt.Println(get_ver_id4())
162 fmt.Println("Need one of: ")
163 fmt.Println(" uuid, ts, tss, tss2, hr, hrr, hrs, hrs2,")
164 fmt.Println(" v, va, vs, vsa")