tools.aw_id

Yohn Y. 2024-02-17 Parent:6ab692934e18 Child:cf05ae943d95

8:74cbe13e3391 Go to Latest

tools.aw_id/src/main.go

+ Генерация версии без дополнительных буквенных указаний на версию и релиз

History
awgur@8 1 // devel.a0fs.ru -- aw_id -- v1.r202402.1 //
awgur@0 2 /*
awgur@0 3 Утилиты генерирования полезных в работе ID
awgur@0 4 */
awgur@0 5 package main
awgur@0 6
awgur@0 7 import (
awgur@0 8 "fmt"
awgur@0 9 "os"
awgur@0 10 "time"
awgur@0 11
awgur@0 12 "github.com/google/uuid"
awgur@0 13 )
awgur@0 14
awgur@0 15 const (
awgur@0 16 TIME_ID = iota
awgur@0 17 TIME_HUM
awgur@0 18 TIME_HUM_SAFE
awgur@0 19 TIME_HUM_SAFE2
awgur@2 20 TIME_ID_SHORT
awgur@2 21 TIME_ID_SHORT2
awgur@0 22 )
awgur@0 23
awgur@0 24 func get_time_id(id_type int) string {
awgur@0 25 cur_time := time.Now()
awgur@0 26 var time_format string = time.RFC3339
awgur@0 27
awgur@0 28 switch id_type {
awgur@0 29 case TIME_ID:
awgur@0 30 time_format = "20060102-150405"
awgur@0 31 case TIME_HUM:
awgur@0 32 time_format = "2006-01-02 15:04:05"
awgur@0 33 case TIME_HUM_SAFE:
awgur@0 34 time_format = "2006-01-02 15-04-05"
awgur@0 35 case TIME_HUM_SAFE2:
awgur@0 36 time_format = "2006-01-02_15-04-05"
awgur@2 37 case TIME_ID_SHORT:
awgur@3 38 time_format = "20060102"
awgur@2 39 case TIME_ID_SHORT2:
awgur@3 40 time_format = "200601"
awgur@0 41 }
awgur@0 42
awgur@0 43 return cur_time.Format(time_format)
awgur@0 44 }
awgur@0 45
awgur@0 46 func get_uuid() string {
awgur@0 47 res := uuid.New()
awgur@0 48 return res.String()
awgur@0 49 }
awgur@0 50
awgur@7 51 func get_ver_id() string {
awgur@7 52 return fmt.Sprintf("v0.r%s.1", get_time_id(TIME_ID_SHORT2))
awgur@7 53 }
awgur@7 54
awgur@8 55 func get_ver_id2() string {
awgur@8 56 return fmt.Sprintf("0.%s.1", get_time_id(TIME_ID_SHORT2))
awgur@8 57 }
awgur@8 58
awgur@0 59 func prnt_out(k, v string) {
awgur@0 60 fmt.Printf("%10s : %s\n", k, v)
awgur@0 61 }
awgur@0 62
awgur@0 63 func make_all_ids() {
awgur@0 64 prnt_out("uuid", get_uuid())
awgur@0 65 prnt_out("ts", get_time_id(TIME_ID))
awgur@2 66 prnt_out("tss", get_time_id(TIME_ID_SHORT))
awgur@2 67 prnt_out("tss2", get_time_id(TIME_ID_SHORT2))
awgur@0 68 prnt_out("hr", get_time_id(TIME_HUM))
awgur@0 69 prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
awgur@0 70 prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
awgur@7 71 prnt_out("v", get_ver_id())
awgur@8 72 prnt_out("vs", get_ver_id2())
awgur@0 73 fmt.Println("")
awgur@0 74 }
awgur@0 75
awgur@0 76 func main() {
awgur@0 77 if len(os.Args) > 1 {
awgur@0 78 switch os.Args[1] {
awgur@0 79 case "uuid":
awgur@0 80 fmt.Println(get_uuid())
awgur@0 81 case "ts":
awgur@0 82 fmt.Println(get_time_id(TIME_ID))
awgur@0 83 case "hr":
awgur@0 84 fmt.Println(get_time_id(TIME_HUM))
awgur@0 85 case "hrs":
awgur@0 86 fmt.Println(get_time_id(TIME_HUM_SAFE))
awgur@0 87 case "hrs2":
awgur@0 88 fmt.Println(get_time_id(TIME_HUM_SAFE2))
awgur@2 89 case "tss":
awgur@2 90 fmt.Println(get_time_id(TIME_ID_SHORT))
awgur@2 91 case "tss2":
awgur@2 92 fmt.Println(get_time_id(TIME_ID_SHORT2))
awgur@7 93 case "v":
awgur@7 94 fmt.Println(get_ver_id())
awgur@8 95 case "vs":
awgur@8 96 fmt.Println(get_ver_id2())
awgur@0 97 default:
awgur@7 98 fmt.Println("Need one of: uuid, ts, tss, tss2, hr, hrs, hrs2, v")
awgur@0 99 }
awgur@0 100 fmt.Println("")
awgur@0 101 } else {
awgur@0 102 make_all_ids()
awgur@0 103 }
awgur@0 104 }