aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/go/_std_1.22/src/path/filepath/symlink_plan9.go
blob: 820d150d976e192f57ebced74ddf9f08b0f2b657 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package filepath

import (
	"os"
	"strings"
	"syscall"
)

func evalSymlinks(path string) (string, error) {
	// Plan 9 doesn't have symbolic links, so no need for substitutions.
	if len(path) > 0 {
		// Check validity of path
		_, err := os.Lstat(path)
		if err != nil {
			// Return the same error value as on other operating systems
			if strings.HasSuffix(err.Error(), "not a directory") {
				err = syscall.ENOTDIR
			}
			return "", err
		}
	}
	return Clean(path), nil
}