code.gitea.io/gitea@v1.19.3/modules/user/user.go (about)

     1  // Copyright 2014 The Gogs Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package user
     5  
     6  import (
     7  	"os"
     8  	"os/user"
     9  	"runtime"
    10  	"strings"
    11  )
    12  
    13  // CurrentUsername return current login OS user name
    14  func CurrentUsername() string {
    15  	userinfo, err := user.Current()
    16  	if err != nil {
    17  		return fallbackCurrentUsername()
    18  	}
    19  	username := userinfo.Username
    20  	if runtime.GOOS == "windows" {
    21  		parts := strings.Split(username, "\\")
    22  		username = parts[len(parts)-1]
    23  	}
    24  	return username
    25  }
    26  
    27  // Old method, used if new method doesn't work on your OS for some reason
    28  func fallbackCurrentUsername() string {
    29  	curUserName := os.Getenv("USER")
    30  	if len(curUserName) > 0 {
    31  		return curUserName
    32  	}
    33  
    34  	return os.Getenv("USERNAME")
    35  }