Skip to content

Commit 2e5e1d1

Browse files
committed
remove whitespace at beginning of new .netrc files
Fixes bgentry#5
1 parent 13bba5c commit 2e5e1d1

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

netrc/netrc.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ func (n *Netrc) NewMachine(name, login, password, account string) *Machine {
9090
n.updateLock.Lock()
9191
defer n.updateLock.Unlock()
9292

93+
prefix := "\n"
94+
if len(n.tokens) == 0 {
95+
prefix = ""
96+
}
9397
m := &Machine{
9498
Name: name,
9599
Login: login,
@@ -98,7 +102,7 @@ func (n *Netrc) NewMachine(name, login, password, account string) *Machine {
98102

99103
nametoken: &token{
100104
kind: tkMachine,
101-
rawkind: []byte("\nmachine"),
105+
rawkind: []byte(prefix + "machine"),
102106
value: name,
103107
rawvalue: []byte(" " + name),
104108
},

netrc/netrc_test.go

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,12 @@ func testNewMachine(t *testing.T, n *Netrc) {
271271
}
272272
}
273273

274+
// test prefix for machine token
275+
prefix := "\n"
276+
if len(n.tokens) == 0 {
277+
prefix = ""
278+
}
279+
274280
m := n.NewMachine(test.name, test.login, test.password, test.account)
275281
if m == nil {
276282
t.Fatalf("NewMachine() returned nil")
@@ -293,7 +299,7 @@ func testNewMachine(t *testing.T, n *Netrc) {
293299
t.Errorf("m.Account expected %q, got %q", test.account, m.Account)
294300
}
295301
// check tokens
296-
checkToken(t, "nametoken", m.nametoken, tkMachine, "\nmachine", test.name)
302+
checkToken(t, "nametoken", m.nametoken, tkMachine, prefix+"machine", test.name)
297303
checkToken(t, "logintoken", m.logintoken, tkLogin, "\n\tlogin", test.login)
298304
checkToken(t, "passtoken", m.passtoken, tkPassword, "\n\tpassword", test.password)
299305
checkToken(t, "accounttoken", m.accounttoken, tkAccount, "\n\taccount", test.account)
@@ -510,6 +516,32 @@ func TestUpdatePassword(t *testing.T) {
510516
}
511517
}
512518

519+
func TestNewFile(t *testing.T) {
520+
var n Netrc
521+
522+
result, err := n.MarshalText()
523+
if err != nil {
524+
t.Fatal(err)
525+
}
526+
if string(result) != "" {
527+
t.Errorf("expected empty result=\"\", got %q", string(result))
528+
}
529+
530+
n.NewMachine("netrctest.heroku.com", "auser", "apassword", "")
531+
532+
result, err = n.MarshalText()
533+
if err != nil {
534+
t.Fatal(err)
535+
}
536+
expected := `machine netrctest.heroku.com
537+
login auser
538+
password apassword`
539+
540+
if string(result) != expected {
541+
t.Errorf("expected result:\n%q\ngot:\n%q", expected, string(result))
542+
}
543+
}
544+
513545
func netrcReader(filename string, t *testing.T) io.Reader {
514546
b, err := ioutil.ReadFile(filename)
515547
if err != nil {

0 commit comments

Comments
 (0)