Преглед изворни кода

Merge pull request #45814 from thaJeztah/cleanup_homedir

pkg/homedir: use os.UserHomeDir(), deprecate GetShortcutString(), Key()
Bjorn Neergaard пре 2 година
родитељ
комит
ddae599cab
4 измењених фајлова са 51 додато и 55 уклоњено
  1. 44 0
      pkg/homedir/homedir.go
  2. 1 1
      pkg/homedir/homedir_test.go
  3. 3 33
      pkg/homedir/homedir_unix.go
  4. 3 21
      pkg/homedir/homedir_windows.go

+ 44 - 0
pkg/homedir/homedir.go

@@ -0,0 +1,44 @@
+package homedir
+
+import (
+	"os"
+	"os/user"
+	"runtime"
+)
+
+// Key returns the env var name for the user's home dir based on
+// the platform being run on.
+//
+// Deprecated: this function is no longer used, and will be removed in the next release.
+func Key() string {
+	return envKeyName
+}
+
+// Get returns the home directory of the current user with the help of
+// environment variables depending on the target operating system.
+// Returned path should be used with "path/filepath" to form new paths.
+//
+// On non-Windows platforms, it falls back to nss lookups, if the home
+// directory cannot be obtained from environment-variables.
+//
+// If linking statically with cgo enabled against glibc, ensure the
+// osusergo build tag is used.
+//
+// If needing to do nss lookups, do not disable cgo or set osusergo.
+func Get() string {
+	home, _ := os.UserHomeDir()
+	if home == "" && runtime.GOOS != "windows" {
+		if u, err := user.Current(); err == nil {
+			return u.HomeDir
+		}
+	}
+	return home
+}
+
+// GetShortcutString returns the string that is shortcut to user's home directory
+// in the native shell of the platform running on.
+//
+// Deprecated: this function is no longer used, and will be removed in the next release.
+func GetShortcutString() string {
+	return homeShortCut
+}

+ 1 - 1
pkg/homedir/homedir_test.go

@@ -17,7 +17,7 @@ func TestGet(t *testing.T) {
 }
 }
 
 
 func TestGetShortcutString(t *testing.T) {
 func TestGetShortcutString(t *testing.T) {
-	shortcut := GetShortcutString()
+	shortcut := GetShortcutString() //nolint:staticcheck // ignore SA1019 (GetShortcutString is deprecated)
 	if shortcut == "" {
 	if shortcut == "" {
 		t.Fatal("returned shortcut string is empty")
 		t.Fatal("returned shortcut string is empty")
 	}
 	}

+ 3 - 33
pkg/homedir/homedir_unix.go

@@ -2,37 +2,7 @@
 
 
 package homedir // import "github.com/docker/docker/pkg/homedir"
 package homedir // import "github.com/docker/docker/pkg/homedir"
 
 
-import (
-	"os"
-	"os/user"
+const (
+	envKeyName   = "HOME"
+	homeShortCut = "~"
 )
 )
-
-// Key returns the env var name for the user's home dir based on
-// the platform being run on
-func Key() string {
-	return "HOME"
-}
-
-// Get returns the home directory of the current user with the help of
-// environment variables depending on the target operating system.
-// Returned path should be used with "path/filepath" to form new paths.
-//
-// If linking statically with cgo enabled against glibc, ensure the
-// osusergo build tag is used.
-//
-// If needing to do nss lookups, do not disable cgo or set osusergo.
-func Get() string {
-	home := os.Getenv(Key())
-	if home == "" {
-		if u, err := user.Current(); err == nil {
-			return u.HomeDir
-		}
-	}
-	return home
-}
-
-// GetShortcutString returns the string that is shortcut to user's home directory
-// in the native shell of the platform running on.
-func GetShortcutString() string {
-	return "~"
-}

+ 3 - 21
pkg/homedir/homedir_windows.go

@@ -1,24 +1,6 @@
 package homedir // import "github.com/docker/docker/pkg/homedir"
 package homedir // import "github.com/docker/docker/pkg/homedir"
 
 
-import (
-	"os"
+const (
+	envKeyName   = "USERPROFILE"
+	homeShortCut = "%USERPROFILE%" // be careful while using in format functions
 )
 )
-
-// Key returns the env var name for the user's home dir based on
-// the platform being run on
-func Key() string {
-	return "USERPROFILE"
-}
-
-// Get returns the home directory of the current user with the help of
-// environment variables depending on the target operating system.
-// Returned path should be used with "path/filepath" to form new paths.
-func Get() string {
-	return os.Getenv(Key())
-}
-
-// GetShortcutString returns the string that is shortcut to user's home directory
-// in the native shell of the platform running on.
-func GetShortcutString() string {
-	return "%USERPROFILE%" // be careful while using in format functions
-}