X-Git-Url: http://www.git.cypherpunks.ru/?p=gotai64n.git;a=blobdiff_plain;f=cmd%2Ftai64nlocal%2Fmain.go;fp=cmd%2Ftai64nlocal%2Fmain.go;h=b2a0c155d8f2220561197c19b445d80cec5322e8;hp=4b58127a6fdfabd0a74da6ee3c64a835b8bbb340;hb=9978840e570dfe3a23e2db36d64237febceaebcf;hpb=266a0ae363ebb2c96e0a1d700c20bfc3a3188788 diff --git a/cmd/tai64nlocal/main.go b/cmd/tai64nlocal/main.go index 4b58127..b2a0c15 100644 --- a/cmd/tai64nlocal/main.go +++ b/cmd/tai64nlocal/main.go @@ -1,5 +1,5 @@ /* -go.cypherpunks.ru/tai64n -- Pure Go TAI64N implementation +go.cypherpunks.ru/tai64n -- Pure Go TAI64/TAI64N implementation Copyright (C) 2020-2021 Sergey Matveev This program is free software: you can redistribute it and/or modify @@ -19,16 +19,38 @@ package main import ( "bufio" + "flag" + "fmt" + "io/ioutil" "log" "os" "strings" "time" - "go.cypherpunks.ru/tai64n" + "go.cypherpunks.ru/tai64n/v2" ) func main() { log.SetFlags(0) + flag.Usage = func() { + fmt.Fprintf( + flag.CommandLine.Output(), + "Replace \"@HEX(TAI64)\"-prefixed line with human readable UTC.\n", + ) + flag.PrintDefaults() + } + leapsecs := flag.Bool("leapsecs", false, "Take leap seconds into account: honest TAI->UTC") + db := flag.String("leapsecsdb", "", "Use that leapsecs.dat leap seconds database") + flag.Parse() + + if *db != "" { + buf, err := ioutil.ReadFile(*db) + if err != nil { + log.Fatalln(err) + } + tai64n.LeapsecsDBLoad(buf) + } + scanner := bufio.NewScanner(os.Stdin) var err error var s string @@ -55,6 +77,9 @@ func main() { if err != nil { log.Fatalln(err) } + if *leapsecs { + t = tai64n.LeapsecsSub(t) + } os.Stdout.WriteString(t.Format(tai64n.LocalFmt) + s[sep:] + "\n") } }