Răsfoiți Sursa

common: remove WriteFile and ReadAllFile (use ioutil instead)

zelig 10 ani în urmă
părinte
comite
4ec38e3932
8 a modificat fișierele cu 22 adăugiri și 92 ștergeri
  1. 3 3
      cmd/ethereum/js_test.go
  2. 3 2
      cmd/ethereum/main.go
  3. 4 3
      cmd/mist/bindings.go
  4. 3 2
      cmd/mist/gui.go
  5. 0 30
      common/path.go
  6. 1 46
      common/path_test.go
  7. 4 2
      crypto/crypto.go
  8. 4 4
      jsre/jsre_test.go

+ 3 - 3
cmd/ethereum/js_test.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"fmt"
+	"io/ioutil"
 	"os"
 	"path"
 	"testing"
@@ -9,7 +10,6 @@ import (
 	"github.com/robertkrimen/otto"
 
 	"github.com/ethereum/go-ethereum/accounts"
-	"github.com/ethereum/go-ethereum/common"
 	"github.com/ethereum/go-ethereum/crypto"
 	"github.com/ethereum/go-ethereum/eth"
 )
@@ -30,8 +30,8 @@ func testJEthRE(t *testing.T) (repl *jsre, ethereum *eth.Ethereum, err error) {
 	}
 	// FIXME: this does not work ATM
 	ks := crypto.NewKeyStorePlain("/tmp/eth/keys")
-	common.WriteFile("/tmp/eth/keys/e273f01c99144c438695e10f24926dc1f9fbf62d/e273f01c99144c438695e10f24926dc1f9fbf62d",
-		[]byte(`{"Id":"RhRXD+fNRKS4jx+7ZfEsNA==","Address":"4nPwHJkUTEOGleEPJJJtwfn79i0=","PrivateKey":"h4ACVpe74uIvi5Cg/2tX/Yrm2xdr3J7QoMbMtNX2CNc="}`))
+	ioutil.WriteFile("/tmp/eth/keys/e273f01c99144c438695e10f24926dc1f9fbf62d/e273f01c99144c438695e10f24926dc1f9fbf62d",
+		[]byte(`{"Id":"RhRXD+fNRKS4jx+7ZfEsNA==","Address":"4nPwHJkUTEOGleEPJJJtwfn79i0=","PrivateKey":"h4ACVpe74uIvi5Cg/2tX/Yrm2xdr3J7QoMbMtNX2CNc="}`), os.ModePerm)
 
 	port++
 	ethereum, err = eth.New(&eth.Config{

+ 3 - 2
cmd/ethereum/main.go

@@ -355,10 +355,11 @@ func getPassPhrase(ctx *cli.Context, desc string, confirmation bool) (passphrase
 			passphrase = auth
 
 		} else {
-			var err error
-			if passphrase, err = common.ReadAllFile(passfile); err != nil {
+			passbytes, err := ioutil.ReadFile(passfile)
+			if err != nil {
 				utils.Fatalf("Unable to read password file '%s': %v", passfile, err)
 			}
+			passphrase = string(passbytes)
 		}
 	}
 	return

+ 4 - 3
cmd/mist/bindings.go

@@ -22,13 +22,14 @@ package main
 
 import (
 	"encoding/json"
+	"io/ioutil"
 	"os"
 	"strconv"
 
 	"github.com/ethereum/go-ethereum/cmd/utils"
 	"github.com/ethereum/go-ethereum/common"
-	"github.com/ethereum/go-ethereum/core/types"
 	"github.com/ethereum/go-ethereum/core/state"
+	"github.com/ethereum/go-ethereum/core/types"
 )
 
 type plugin struct {
@@ -46,14 +47,14 @@ func (self *Gui) AddPlugin(pluginPath string) {
 	self.plugins[pluginPath] = plugin{Name: pluginPath, Path: pluginPath}
 
 	json, _ := json.MarshalIndent(self.plugins, "", "    ")
-	common.WriteFile(self.eth.DataDir+"/plugins.json", json)
+	ioutil.WriteFile(self.eth.DataDir+"/plugins.json", json, os.ModePerm)
 }
 
 func (self *Gui) RemovePlugin(pluginPath string) {
 	delete(self.plugins, pluginPath)
 
 	json, _ := json.MarshalIndent(self.plugins, "", "    ")
-	common.WriteFile(self.eth.DataDir+"/plugins.json", json)
+	ioutil.WriteFile(self.eth.DataDir+"/plugins.json", json, os.ModePerm)
 }
 
 func (self *Gui) DumpState(hash, path string) {

+ 3 - 2
cmd/mist/gui.go

@@ -25,6 +25,7 @@ import "C"
 import (
 	"encoding/json"
 	"fmt"
+	"io/ioutil"
 	"math/big"
 	"path"
 	"runtime"
@@ -91,8 +92,8 @@ func NewWindow(ethereum *eth.Ethereum) *Gui {
 		plugins:       make(map[string]plugin),
 		serviceEvents: make(chan ServEv, 1),
 	}
-	data, _ := common.ReadAllFile(path.Join(ethereum.DataDir, "plugins.json"))
-	json.Unmarshal([]byte(data), &gui.plugins)
+	data, _ := ioutil.ReadFile(path.Join(ethereum.DataDir, "plugins.json"))
+	json.Unmarshal(data, &gui.plugins)
 
 	return gui
 }

+ 0 - 30
common/path.go

@@ -2,7 +2,6 @@ package common
 
 import (
 	"fmt"
-	"io/ioutil"
 	"os"
 	"os/user"
 	"path"
@@ -43,35 +42,6 @@ func FileExist(filePath string) bool {
 	return true
 }
 
-func ReadAllFile(filePath string) (string, error) {
-	file, err := os.Open(filePath)
-	if err != nil {
-		return "", err
-	}
-
-	data, err := ioutil.ReadAll(file)
-	if err != nil {
-		return "", err
-	}
-
-	return string(data), nil
-}
-
-func WriteFile(filePath string, content []byte) error {
-	fh, err := os.OpenFile(filePath, os.O_TRUNC|os.O_RDWR|os.O_CREATE, os.ModePerm)
-	if err != nil {
-		return err
-	}
-	defer fh.Close()
-
-	_, err = fh.Write(content)
-	if err != nil {
-		return err
-	}
-
-	return nil
-}
-
 func AbsolutePath(Datadir string, filename string) string {
 	if path.IsAbs(filename) {
 		return filename

+ 1 - 46
common/path_test.go

@@ -2,56 +2,11 @@ package common
 
 import (
 	"os"
-	"testing"
+	// "testing"
 
 	checker "gopkg.in/check.v1"
 )
 
-func TestGoodFile(t *testing.T) {
-	goodpath := "~/goethereumtest.pass"
-	path := ExpandHomePath(goodpath)
-	contentstring := "3.14159265358979323846"
-
-	err := WriteFile(path, []byte(contentstring))
-	if err != nil {
-		t.Error("Could not write file")
-	}
-
-	if !FileExist(path) {
-		t.Error("File not found at", path)
-	}
-
-	v, err := ReadAllFile(path)
-	if err != nil {
-		t.Error("Could not read file", path)
-	}
-	if v != contentstring {
-		t.Error("Expected", contentstring, "Got", v)
-	}
-
-}
-
-func TestBadFile(t *testing.T) {
-	badpath := "/this/path/should/not/exist/goethereumtest.fail"
-	path := ExpandHomePath(badpath)
-	contentstring := "3.14159265358979323846"
-
-	err := WriteFile(path, []byte(contentstring))
-	if err == nil {
-		t.Error("Wrote file, but should not be able to", path)
-	}
-
-	if FileExist(path) {
-		t.Error("Found file, but should not be able to", path)
-	}
-
-	v, err := ReadAllFile(path)
-	if err == nil {
-		t.Error("Read file, but should not be able to", v)
-	}
-
-}
-
 type CommonSuite struct{}
 
 var _ = checker.Suite(&CommonSuite{})

+ 4 - 2
crypto/crypto.go

@@ -9,6 +9,7 @@ import (
 	"crypto/sha256"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"os"
 
 	"encoding/hex"
@@ -139,9 +140,10 @@ func LoadECDSA(file string) (*ecdsa.PrivateKey, error) {
 	return ToECDSA(buf), nil
 }
 
-// SaveECDSA saves a secp256k1 private key from the given file.
+// SaveECDSA saves a secp256k1 private key to the given file with restrictive
+// permissions
 func SaveECDSA(file string, key *ecdsa.PrivateKey) error {
-	return common.WriteFile(file, FromECDSA(key))
+	return ioutil.WriteFile(file, FromECDSA(key), 0600)
 }
 
 func GenerateKey() (*ecdsa.PrivateKey, error) {

+ 4 - 4
jsre/jsre_test.go

@@ -2,9 +2,9 @@ package jsre
 
 import (
 	"github.com/robertkrimen/otto"
+	"io/ioutil"
+	"os"
 	"testing"
-
-	"github.com/ethereum/go-ethereum/common"
 )
 
 type testNativeObjectBinding struct {
@@ -26,7 +26,7 @@ func (no *testNativeObjectBinding) TestMethod(call otto.FunctionCall) otto.Value
 func TestExec(t *testing.T) {
 	jsre := New("/tmp")
 
-	common.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`))
+	ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
 	err := jsre.Exec("test.js")
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)
@@ -64,7 +64,7 @@ func TestBind(t *testing.T) {
 func TestLoadScript(t *testing.T) {
 	jsre := New("/tmp")
 
-	common.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`))
+	ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
 	_, err := jsre.Run(`loadScript("test.js")`)
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)