Skip to content

Commit

Permalink
Fix an error when git config is called.
Browse files Browse the repository at this point in the history
os.user.User.Name is "" when the operating system reports it to be such.
Similarly, /dev/mailname contains just "debian" if nothing better has been set,
so I added a check for that.
  • Loading branch information
Jacob Marble committed Nov 2, 2015
1 parent 1221041 commit 156ce3d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2015, Michael Stapelberg and contributors
Copyright (c) 2015, Michael Stapelberg, Google Inc. and contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
22 changes: 14 additions & 8 deletions make.go
Original file line number Diff line number Diff line change
Expand Up @@ -236,12 +236,16 @@ func createGitRepository(debsrc, gopkg, orig string) (string, error) {
return dir, err
}

if err := runGitCommandIn(dir, "config", "user.name", getDebianName()); err != nil {
return dir, err
if debianName := getDebianName(); debianName != "TODO" {
if err := runGitCommandIn(dir, "config", "user.name", debianName); err != nil {
return dir, err
}
}

if err := runGitCommandIn(dir, "config", "user.email", getDebianEmail()); err != nil {
return dir, err
if debianEmail := getDebianEmail(); debianEmail != "TODO" {
if err := runGitCommandIn(dir, "config", "user.email", debianEmail); err != nil {
return dir, err
}
}

if err := runGitCommandIn(dir, "config", "push.default", "matching"); err != nil {
Expand Down Expand Up @@ -321,7 +325,7 @@ func getDebianName() string {
if name := strings.TrimSpace(os.Getenv("DEBNAME")); name != "" {
return name
}
if u, err := user.Current(); err == nil {
if u, err := user.Current(); err == nil && u.Name != "" {
return u.Name
}
return "TODO"
Expand All @@ -331,9 +335,11 @@ func getDebianEmail() string {
if email := strings.TrimSpace(os.Getenv("DEBEMAIL")); email != "" {
return email
}
if mailname, err := ioutil.ReadFile("/etc/mailname"); err == nil {
if u, err := user.Current(); err == nil {
return u.Name + "@" + strings.TrimSpace(string(mailname))
mailname, err := ioutil.ReadFile("/etc/mailname")
if err == nil && strings.Contains(string(mailname), ".") {
// By default, /etc/mailname contains "debian" which is not useful; check for ".".
if u, err := user.Current(); err == nil && u.Username != "" {
return u.Username + "@" + strings.TrimSpace(string(mailname))
}
}
return "TODO"
Expand Down

0 comments on commit 156ce3d

Please sign in to comment.