Browse Source

cmd/utils: fix --password on Windows

Text files created on Windows typically have \r\n line endings.
Trim them when reading password files.
Felix Lange 9 years ago
parent
commit
ea005a0295
1 changed files with 14 additions and 9 deletions
  1. 14 9
      cmd/utils/flags.go

+ 14 - 9
cmd/utils/flags.go

@@ -606,17 +606,22 @@ func MakeMinerExtra(extra []byte, ctx *cli.Context) []byte {
 	return extra
 	return extra
 }
 }
 
 
-// MakePasswordList loads up a list of password from a file specified by the
-// command line flags.
+// MakePasswordList reads password lines from the file specified by --password.
 func MakePasswordList(ctx *cli.Context) []string {
 func MakePasswordList(ctx *cli.Context) []string {
-	if path := ctx.GlobalString(PasswordFileFlag.Name); path != "" {
-		blob, err := ioutil.ReadFile(path)
-		if err != nil {
-			Fatalf("Failed to read password file: %v", err)
-		}
-		return strings.Split(string(blob), "\n")
+	path := ctx.GlobalString(PasswordFileFlag.Name)
+	if path == "" {
+		return nil
+	}
+	text, err := ioutil.ReadFile(path)
+	if err != nil {
+		Fatalf("Failed to read password file: %v", err)
+	}
+	lines := strings.Split(string(text), "\n")
+	// Sanitise DOS line endings.
+	for i := range lines {
+		lines[i] = strings.TrimRight(lines[i], "\r")
 	}
 	}
-	return nil
+	return lines
 }
 }
 
 
 // MakeSystemNode sets up a local node, configures the services to launch and
 // MakeSystemNode sets up a local node, configures the services to launch and