mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-24 22:32:15 +00:00
libs/common: remove unused functions (#3784)
- The removed functions are not used in Iavl, Cosmos-sdk and tendermint repos - Code-hygenie `whoop whoop` Signed-off-by: Marko Baricevic <marbar3778@yahoo.com>
This commit is contained in:
parent
f05c2a9558
commit
e9c9c558d7
@ -22,6 +22,7 @@ program](https://hackerone.com/tendermint).
|
|||||||
not.
|
not.
|
||||||
- [libs] Remove unused `db/debugDB` and `common/colors.go` & `errors/errors.go` files (@marbar3778)
|
- [libs] Remove unused `db/debugDB` and `common/colors.go` & `errors/errors.go` files (@marbar3778)
|
||||||
- [libs] \#2432 Remove unused `common/heap.go` file (@marbar3778)
|
- [libs] \#2432 Remove unused `common/heap.go` file (@marbar3778)
|
||||||
|
- [libs] Remove unused `date.go`, `io.go`. Remove `GoPath()`, `Prompt()` and `IsDirEmpty()` functions from `os.go` (@marbar3778)
|
||||||
|
|
||||||
- Blockchain Protocol
|
- Blockchain Protocol
|
||||||
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TimeLayout helps to parse a date string of the format YYYY-MM-DD
|
|
||||||
// Intended to be used with the following function:
|
|
||||||
// time.Parse(TimeLayout, date)
|
|
||||||
var TimeLayout = "2006-01-02" //this represents YYYY-MM-DD
|
|
||||||
|
|
||||||
// ParseDateRange parses a date range string of the format start:end
|
|
||||||
// where the start and end date are of the format YYYY-MM-DD.
|
|
||||||
// The parsed dates are time.Time and will return the zero time for
|
|
||||||
// unbounded dates, ex:
|
|
||||||
// unbounded start: :2000-12-31
|
|
||||||
// unbounded end: 2000-12-31:
|
|
||||||
func ParseDateRange(dateRange string) (startDate, endDate time.Time, err error) {
|
|
||||||
dates := strings.Split(dateRange, ":")
|
|
||||||
if len(dates) != 2 {
|
|
||||||
err = errors.New("bad date range, must be in format date:date")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
parseDate := func(date string) (out time.Time, err error) {
|
|
||||||
if len(date) == 0 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
out, err = time.Parse(TimeLayout, date)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
startDate, err = parseDate(dates[0])
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
endDate, err = parseDate(dates[1])
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
date = time.Date(2015, time.Month(12), 31, 0, 0, 0, 0, time.UTC)
|
|
||||||
date2 = time.Date(2016, time.Month(12), 31, 0, 0, 0, 0, time.UTC)
|
|
||||||
zero time.Time
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestParseDateRange(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
var testDates = []struct {
|
|
||||||
dateStr string
|
|
||||||
start time.Time
|
|
||||||
end time.Time
|
|
||||||
errNil bool
|
|
||||||
}{
|
|
||||||
{"2015-12-31:2016-12-31", date, date2, true},
|
|
||||||
{"2015-12-31:", date, zero, true},
|
|
||||||
{":2016-12-31", zero, date2, true},
|
|
||||||
{"2016-12-31", zero, zero, false},
|
|
||||||
{"2016-31-12:", zero, zero, false},
|
|
||||||
{":2016-31-12", zero, zero, false},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, test := range testDates {
|
|
||||||
start, end, err := ParseDateRange(test.dateStr)
|
|
||||||
if test.errNil {
|
|
||||||
assert.Nil(err)
|
|
||||||
testPtr := func(want, have time.Time) {
|
|
||||||
assert.True(have.Equal(want))
|
|
||||||
}
|
|
||||||
testPtr(test.start, start)
|
|
||||||
testPtr(test.end, end)
|
|
||||||
} else {
|
|
||||||
assert.NotNil(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"errors"
|
|
||||||
"io"
|
|
||||||
)
|
|
||||||
|
|
||||||
type PrefixedReader struct {
|
|
||||||
Prefix []byte
|
|
||||||
reader io.Reader
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPrefixedReader(prefix []byte, reader io.Reader) *PrefixedReader {
|
|
||||||
return &PrefixedReader{prefix, reader}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pr *PrefixedReader) Read(p []byte) (n int, err error) {
|
|
||||||
if len(pr.Prefix) > 0 {
|
|
||||||
read := copy(p, pr.Prefix)
|
|
||||||
pr.Prefix = pr.Prefix[read:]
|
|
||||||
return read, nil
|
|
||||||
}
|
|
||||||
return pr.reader.Read(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: Not goroutine safe
|
|
||||||
type BufferCloser struct {
|
|
||||||
bytes.Buffer
|
|
||||||
Closed bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewBufferCloser(buf []byte) *BufferCloser {
|
|
||||||
return &BufferCloser{
|
|
||||||
*bytes.NewBuffer(buf),
|
|
||||||
false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bc *BufferCloser) Close() error {
|
|
||||||
if bc.Closed {
|
|
||||||
return errors.New("BufferCloser already closed")
|
|
||||||
}
|
|
||||||
bc.Closed = true
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bc *BufferCloser) Write(p []byte) (n int, err error) {
|
|
||||||
if bc.Closed {
|
|
||||||
return 0, errors.New("Cannot write to closed BufferCloser")
|
|
||||||
}
|
|
||||||
return bc.Buffer.Write(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bc *BufferCloser) WriteByte(c byte) error {
|
|
||||||
if bc.Closed {
|
|
||||||
return errors.New("Cannot write to closed BufferCloser")
|
|
||||||
}
|
|
||||||
return bc.Buffer.WriteByte(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bc *BufferCloser) WriteRune(r rune) (n int, err error) {
|
|
||||||
if bc.Closed {
|
|
||||||
return 0, errors.New("Cannot write to closed BufferCloser")
|
|
||||||
}
|
|
||||||
return bc.Buffer.WriteRune(r)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bc *BufferCloser) WriteString(s string) (n int, err error) {
|
|
||||||
if bc.Closed {
|
|
||||||
return 0, errors.New("Cannot write to closed BufferCloser")
|
|
||||||
}
|
|
||||||
return bc.Buffer.WriteString(s)
|
|
||||||
}
|
|
@ -1,39 +1,13 @@
|
|||||||
package common
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"strings"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
var gopath string
|
|
||||||
|
|
||||||
// GoPath returns GOPATH env variable value. If it is not set, this function
|
|
||||||
// will try to call `go env GOPATH` subcommand.
|
|
||||||
func GoPath() string {
|
|
||||||
if gopath != "" {
|
|
||||||
return gopath
|
|
||||||
}
|
|
||||||
|
|
||||||
path := os.Getenv("GOPATH")
|
|
||||||
if len(path) == 0 {
|
|
||||||
goCmd := exec.Command("go", "env", "GOPATH")
|
|
||||||
out, err := goCmd.Output()
|
|
||||||
if err != nil {
|
|
||||||
panic(fmt.Sprintf("failed to determine gopath: %v", err))
|
|
||||||
}
|
|
||||||
path = string(out)
|
|
||||||
}
|
|
||||||
gopath = path
|
|
||||||
return path
|
|
||||||
}
|
|
||||||
|
|
||||||
type logger interface {
|
type logger interface {
|
||||||
Info(msg string, keyvals ...interface{})
|
Info(msg string, keyvals ...interface{})
|
||||||
}
|
}
|
||||||
@ -78,25 +52,6 @@ func EnsureDir(dir string, mode os.FileMode) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsDirEmpty(name string) (bool, error) {
|
|
||||||
f, err := os.Open(name)
|
|
||||||
if err != nil {
|
|
||||||
if os.IsNotExist(err) {
|
|
||||||
return true, err
|
|
||||||
}
|
|
||||||
// Otherwise perhaps a permission
|
|
||||||
// error or some other error.
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
_, err = f.Readdirnames(1) // Or f.Readdir(1)
|
|
||||||
if err == io.EOF {
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
return false, err // Either not empty or error, suits both cases
|
|
||||||
}
|
|
||||||
|
|
||||||
func FileExists(filePath string) bool {
|
func FileExists(filePath string) bool {
|
||||||
_, err := os.Stat(filePath)
|
_, err := os.Stat(filePath)
|
||||||
return !os.IsNotExist(err)
|
return !os.IsNotExist(err)
|
||||||
@ -125,19 +80,3 @@ func MustWriteFile(filePath string, contents []byte, mode os.FileMode) {
|
|||||||
Exit(fmt.Sprintf("MustWriteFile failed: %v", err))
|
Exit(fmt.Sprintf("MustWriteFile failed: %v", err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
func Prompt(prompt string, defaultValue string) (string, error) {
|
|
||||||
fmt.Print(prompt)
|
|
||||||
reader := bufio.NewReader(os.Stdin)
|
|
||||||
line, err := reader.ReadString('\n')
|
|
||||||
if err != nil {
|
|
||||||
return defaultValue, err
|
|
||||||
}
|
|
||||||
line = strings.TrimSpace(line)
|
|
||||||
if line == "" {
|
|
||||||
return defaultValue, nil
|
|
||||||
}
|
|
||||||
return line, nil
|
|
||||||
}
|
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestOSGoPath(t *testing.T) {
|
|
||||||
// restore original gopath upon exit
|
|
||||||
path := os.Getenv("GOPATH")
|
|
||||||
defer func() {
|
|
||||||
_ = os.Setenv("GOPATH", path)
|
|
||||||
}()
|
|
||||||
|
|
||||||
err := os.Setenv("GOPATH", "~/testgopath")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
path = GoPath()
|
|
||||||
if path != "~/testgopath" {
|
|
||||||
t.Fatalf("should get GOPATH env var value, got %v", path)
|
|
||||||
}
|
|
||||||
os.Unsetenv("GOPATH")
|
|
||||||
|
|
||||||
path = GoPath()
|
|
||||||
if path != "~/testgopath" {
|
|
||||||
t.Fatalf("subsequent calls should return the same value, got %v", path)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestOSGoPathWithoutEnvVar(t *testing.T) {
|
|
||||||
// restore original gopath upon exit
|
|
||||||
path := os.Getenv("GOPATH")
|
|
||||||
defer func() {
|
|
||||||
_ = os.Setenv("GOPATH", path)
|
|
||||||
}()
|
|
||||||
|
|
||||||
os.Unsetenv("GOPATH")
|
|
||||||
// reset cache
|
|
||||||
gopath = ""
|
|
||||||
|
|
||||||
path = GoPath()
|
|
||||||
if path == "" || path == "~/testgopath" {
|
|
||||||
t.Fatalf("should get nonempty result of calling go env GOPATH, got %v", path)
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user