$ git clone git://git.cypherpunks.ru/goredo.git
$ cd goredo
- $ git tag -v v0.4.0
+ $ git tag -v v0.4.1
$ git clone git://git.cypherpunks.ru/gorecfile.git
$ ( cd gorecfile ; git tag -v v0.3.0 )
$ echo "replace go.cypherpunks.ru/recfile => `pwd`/gorecfile" >> go.mod
$ git clone git://git.cypherpunks.ru/gotai64n.git
- $ ( cd gotai64n ; git tag -v v0.1.0 )
+ $ ( cd gotai64n ; git tag -v v0.2.0 )
$ echo "replace go.cypherpunks.ru/tai64n => `pwd`/gotai64n" >> go.mod
$ go build
$ ./goredo -symlinks
* optional statusline with currently running/waiting/done jobs
* target's stderr can be stored on the disk with TAI64N timestamp
prefixes for each line. To convert them to localtime you can use either
- tai64nlocal utility from daemontools (http://cr.yp.to/daemontools.html)
- or make a symlink, to use built-in slower decoder: >
- $ ln -s goredo tai64nlocal
+ tai64nlocal utility from daemontools (http://cr.yp.to/daemontools.html),
+ or similar one: >
+ $ go get go.cypherpunks.ru/tai64n/cmd/tai64nlocal
COMMANDS *goredo-commands*
require (
go.cypherpunks.ru/recfile v0.3.0
- go.cypherpunks.ru/tai64n v0.1.0
+ go.cypherpunks.ru/tai64n v0.2.0
golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9
golang.org/x/sys v0.0.0-20201117222635-ba5294a509c7
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221
go.cypherpunks.ru/recfile v0.3.0 h1:aZRMMst8hoNOIhGjCA/VxjTN5VBSEN4W4zyhWF/7xSU=
go.cypherpunks.ru/recfile v0.3.0/go.mod h1:p1ZUMeyQQbQg+ICtKH3+Zt59QLI0tCZYZj/75Vp1buk=
-go.cypherpunks.ru/tai64n v0.1.0 h1:XT1ys6lbo4/bjDQpMA8Xu5TCx6Y6aAYYYn5G0quE8sk=
-go.cypherpunks.ru/tai64n v0.1.0/go.mod h1:mjuUq/ZQAOEKvzAAl25RIrN6JExWA4fRkOs7o7OVvYE=
+go.cypherpunks.ru/tai64n v0.2.0 h1:ox04T0m9wVngTb5tDwrPyifukr01c6iJXHHJldlMQu8=
+go.cypherpunks.ru/tai64n v0.2.0/go.mod h1:mjuUq/ZQAOEKvzAAl25RIrN6JExWA4fRkOs7o7OVvYE=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9 h1:phUcVbl53swtrUN8kQEXFhUxPlIlWyBfKmidCu7P95o=
golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
package main
import (
- "bufio"
"crypto/rand"
"flag"
"fmt"
log.Println(err)
}
}
- fmt.Println("not creating optional:", os.Args[0], "<- tai64nlocal")
os.Exit(rc)
}
log.SetFlags(0)
fmt.Println(cwdMustRel(cwd, m["Target"]))
}
ok = doFile != ""
- case "tai64nlocal":
- bw := bufio.NewWriter(os.Stdout)
- err = tai64nLocal(bw, os.Stdin)
- bw.Flush()
default:
log.Fatalln("unknown command", cmdName)
}
+++ /dev/null
-/*
-goredo -- redo implementation on pure Go
-Copyright (C) 2020 Sergey Matveev <stargrave@stargrave.org>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 3 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package main
-
-import (
- "bufio"
- "io"
- "strings"
- "time"
-
- "go.cypherpunks.ru/tai64n"
-)
-
-func tai64nLocal(dst io.StringWriter, src io.Reader) error {
- scanner := bufio.NewScanner(src)
- var err error
- var s string
- var sep int
- var t time.Time
- for {
- if !scanner.Scan() {
- if err = scanner.Err(); err != nil {
- return err
- }
- break
- }
- s = scanner.Text()
-
- if s[0] != '@' {
- dst.WriteString(s + "\n")
- }
- sep = strings.IndexByte(s, byte(' '))
- if sep == -1 {
- dst.WriteString(s + "\n")
- }
- t, err = tai64n.Decode(s[1:sep])
- if err != nil {
- return err
- }
- dst.WriteString(t.Format(tai64n.LocalFmt) + s[sep:] + "\n")
- }
- return nil
-}
)
const (
- Version = "0.4.0"
+ Version = "0.4.1"
Warranty = `This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License.