"time"
"go.cypherpunks.su/recfile/v2"
- "go.cypherpunks.su/tai64n/v3"
+ "go.cypherpunks.su/tai64n/v4"
)
const HumanTimeFmt = "2006-01-02 15:04:05.000000000 Z07:00"
for each line. To convert them to localtime you can use either
@command{tai64nlocal} utility from
@url{http://cr.yp.to/daemontools.html, daemontools}, or similar one:
- @code{go install go.cypherpunks.su/tai64n/v3/cmd/tai64nlocal@@latest}
+ @code{go install go.cypherpunks.su/tai64n/v4/cmd/tai64nlocal@@latest}
@item Either @url{https://www.gnu.org/software/make/, GNU Make}
or @url{http://netbsd.org/, NetBSD}'s @command{bmake}
@ref{Jobserver, jobserver} compatibility support
it is prefixed with @url{http://cr.yp.to/libtai/tai64.html, TAI64N}
timestamp, that you can decode with @command{tai64nlocal} utility from
@url{http://cr.yp.to/daemontools.html, daemontools}, or similar one:
-@code{go install go.cypherpunks.su/tai64n/v3/cmd/tai64nlocal}.
+@code{go install go.cypherpunks.su/tai64n/v4/cmd/tai64nlocal}.
When @option{-k} is in use, all environment variables, working
directory, command line arguments, start/finish times, duration,
@cindex news
@unnumbered News
+@anchor{Release 2_6_3}
+@section Release 2.6.3
+@itemize
+@item
+ Updated dependant libraries. Should fix workability on modern OpenBSD.
+@end itemize
+
@anchor{Release 2_6_2}
@section Release 2.6.2
@itemize
toolchain go1.22.5
require (
- github.com/google/uuid v1.3.1
+ github.com/google/uuid v1.6.0
go.cypherpunks.su/recfile/v2 v2.0.0
- go.cypherpunks.su/tai64n/v3 v3.0.0
+ go.cypherpunks.su/tai64n/v4 v4.1.0
golang.org/x/sys v0.27.0
- golang.org/x/term v0.11.0
- lukechampine.com/blake3 v1.2.1
+ golang.org/x/term v0.26.0
+ lukechampine.com/blake3 v1.3.0
)
-require github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+require github.com/klauspost/cpuid/v2 v2.2.9 // indirect
-github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
-github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
-github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY=
+github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8=
go.cypherpunks.su/recfile/v2 v2.0.0 h1:Q2o+OzM1H2O1WnshU88r+waBqylkqZj8plBdBWZitcU=
go.cypherpunks.su/recfile/v2 v2.0.0/go.mod h1:36EnyBwx6VpsSM5MMcYGTDiKrVEP49S09p33EFuhQYU=
-go.cypherpunks.su/tai64n/v3 v3.0.0 h1:JvQiZJwkswUttMNcPrYS4KUK9Zfl6xllD0N6ZnSZX/U=
-go.cypherpunks.su/tai64n/v3 v3.0.0/go.mod h1:zGDFuyiFKJk+iem8lyBaFeCm+MNMOn7RRWy456n1J78=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+go.cypherpunks.su/tai64n/v4 v4.1.0 h1:jW0EyklKXpSy9DSFMcDbu7XuLlMkn6kkpNWiMG6UT5c=
+go.cypherpunks.su/tai64n/v4 v4.1.0/go.mod h1:/uKUdhLOy8UciRKpapPaFXSOoa/SiXjs3XsDDpAz7OA=
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
-golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
-lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI=
-lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
+golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU=
+golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E=
+lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE=
+lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
"github.com/google/uuid"
"go.cypherpunks.su/recfile/v2"
- "go.cypherpunks.su/tai64n/v3"
+ "go.cypherpunks.su/tai64n/v4"
"golang.org/x/sys/unix"
)
Name: "PID", Value: strconv.Itoa(cmd.Process.Pid),
})
}
- ts := new(tai64n.TAI64N)
+ var ts tai64n.TAI64N
ts.FromTime(started)
fields = append(fields,
- recfile.Field{Name: "Started", Value: tai64n.Encode(ts[:])},
+ recfile.Field{Name: "Started", Value: ts.Encode()},
)
ts.FromTime(finished)
fields = append(fields,
- recfile.Field{Name: "Finished", Value: tai64n.Encode(ts[:])})
+ recfile.Field{Name: "Finished", Value: ts.Encode()})
fields = append(fields, recfile.Field{
Name: "Duration",
Value: strconv.FormatInt(finished.Sub(started).Nanoseconds(), 10),
go func() {
scanner := bufio.NewScanner(stderr)
var line string
- ts := new(tai64n.TAI64N)
+ var ts tai64n.TAI64N
for scanner.Scan() {
line = scanner.Text()
if strings.HasPrefix(line, childStderrPrefix) {
}
if fdStderr != nil {
ts.FromTime(time.Now())
- fmt.Fprintln(fdStderr, tai64n.Encode(ts[:]), line)
+ fmt.Fprintln(fdStderr, ts.Encode(), line)
}
if StderrSilent {
continue
)
const (
- Version = "2.6.2"
+ Version = "2.6.3"
Warranty = `Copyright (C) 2020-2024 Sergey Matveev
This program is free software: you can redistribute it and/or modify