github.com/richardwilkes/toolbox@v1.121.0/user.go (about)

     1  // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the Mozilla Public
     4  // License, version 2.0. If a copy of the MPL was not distributed with
     5  // this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6  //
     7  // This Source Code Form is "Incompatible With Secondary Licenses", as
     8  // defined by the Mozilla Public License, version 2.0.
     9  
    10  package toolbox
    11  
    12  import (
    13  	"cmp"
    14  	"os"
    15  	"os/user"
    16  )
    17  
    18  // CurrentUserName returns the current user's name. This will attempt to retrieve the user's display name, but will fall
    19  // back to the account name if it isn't available.
    20  func CurrentUserName() string {
    21  	if u, err := user.Current(); err == nil {
    22  		return cmp.Or(u.Name, u.Username)
    23  	}
    24  	return os.Getenv("USER")
    25  }