tools.aw_id

Yohn Y. 2023-08-19 Parent:1a48eceb43e7 Child:c492395606de

1:c5a3039be65e Go to Latest

tools.aw_id/src/main.go

.

History
1 // devel.a0fs.ru -- aw_id -- v0.r202308.1 //
2 /*
3 Утилиты генерирования полезных в работе ID
4 */
5 package main
7 import (
8 "fmt"
9 "os"
10 "time"
12 "github.com/google/uuid"
13 )
15 const (
16 TIME_ID = iota
17 TIME_HUM
18 TIME_HUM_SAFE
19 TIME_HUM_SAFE2
20 )
22 func get_time_id(id_type int) string {
23 cur_time := time.Now()
24 var time_format string = time.RFC3339
26 switch id_type {
27 case TIME_ID:
28 time_format = "20060102-150405"
29 case TIME_HUM:
30 time_format = "2006-01-02 15:04:05"
31 case TIME_HUM_SAFE:
32 time_format = "2006-01-02 15-04-05"
33 case TIME_HUM_SAFE2:
34 time_format = "2006-01-02_15-04-05"
35 }
37 return cur_time.Format(time_format)
38 }
40 func get_uuid() string {
41 res := uuid.New()
42 return res.String()
43 }
45 func prnt_out(k, v string) {
46 fmt.Printf("%10s : %s\n", k, v)
47 }
49 func make_all_ids() {
50 prnt_out("uuid", get_uuid())
51 prnt_out("ts", get_time_id(TIME_ID))
52 prnt_out("hr", get_time_id(TIME_HUM))
53 prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
54 prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
55 fmt.Println("")
56 }
58 func main() {
59 if len(os.Args) > 1 {
60 switch os.Args[1] {
61 case "uuid":
62 fmt.Println(get_uuid())
63 case "ts":
64 fmt.Println(get_time_id(TIME_ID))
65 case "hr":
66 fmt.Println(get_time_id(TIME_HUM))
67 case "hrs":
68 fmt.Println(get_time_id(TIME_HUM_SAFE))
69 case "hrs2":
70 fmt.Println(get_time_id(TIME_HUM_SAFE2))
71 default:
72 fmt.Println("Need one of: uuid, ts, hr, hrs, hrs2")
73 }
74 fmt.Println("")
75 } else {
76 make_all_ids()
77 }
78 }