tools.aw_id

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

1:c5a3039be65e Go to Latest

tools.aw_id/src/main.go

.

History
awgur@0 1 // devel.a0fs.ru -- aw_id -- v0.r202308.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@0 20 )
awgur@0 21
awgur@0 22 func get_time_id(id_type int) string {
awgur@0 23 cur_time := time.Now()
awgur@0 24 var time_format string = time.RFC3339
awgur@0 25
awgur@0 26 switch id_type {
awgur@0 27 case TIME_ID:
awgur@0 28 time_format = "20060102-150405"
awgur@0 29 case TIME_HUM:
awgur@0 30 time_format = "2006-01-02 15:04:05"
awgur@0 31 case TIME_HUM_SAFE:
awgur@0 32 time_format = "2006-01-02 15-04-05"
awgur@0 33 case TIME_HUM_SAFE2:
awgur@0 34 time_format = "2006-01-02_15-04-05"
awgur@0 35 }
awgur@0 36
awgur@0 37 return cur_time.Format(time_format)
awgur@0 38 }
awgur@0 39
awgur@0 40 func get_uuid() string {
awgur@0 41 res := uuid.New()
awgur@0 42 return res.String()
awgur@0 43 }
awgur@0 44
awgur@0 45 func prnt_out(k, v string) {
awgur@0 46 fmt.Printf("%10s : %s\n", k, v)
awgur@0 47 }
awgur@0 48
awgur@0 49 func make_all_ids() {
awgur@0 50 prnt_out("uuid", get_uuid())
awgur@0 51 prnt_out("ts", get_time_id(TIME_ID))
awgur@0 52 prnt_out("hr", get_time_id(TIME_HUM))
awgur@0 53 prnt_out("hrs", get_time_id(TIME_HUM_SAFE))
awgur@0 54 prnt_out("hrs2", get_time_id(TIME_HUM_SAFE2))
awgur@0 55 fmt.Println("")
awgur@0 56 }
awgur@0 57
awgur@0 58 func main() {
awgur@0 59 if len(os.Args) > 1 {
awgur@0 60 switch os.Args[1] {
awgur@0 61 case "uuid":
awgur@0 62 fmt.Println(get_uuid())
awgur@0 63 case "ts":
awgur@0 64 fmt.Println(get_time_id(TIME_ID))
awgur@0 65 case "hr":
awgur@0 66 fmt.Println(get_time_id(TIME_HUM))
awgur@0 67 case "hrs":
awgur@0 68 fmt.Println(get_time_id(TIME_HUM_SAFE))
awgur@0 69 case "hrs2":
awgur@0 70 fmt.Println(get_time_id(TIME_HUM_SAFE2))
awgur@0 71 default:
awgur@0 72 fmt.Println("Need one of: uuid, ts, hr, hrs, hrs2")
awgur@0 73 }
awgur@0 74 fmt.Println("")
awgur@0 75 } else {
awgur@0 76 make_all_ids()
awgur@0 77 }
awgur@0 78 }