// Copyright 2013 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 user import ( "fmt" "os" "syscall" ) // Partial os/user support on Plan 9. // Supports Current(), but not Lookup()/LookupId(). // The latter two would require parsing /adm/users. const ( userFile = "/dev/user" ) func init() { groupImplemented = false } func current() (*User, error) { ubytes, err := os.ReadFile(userFile) if err != nil { return nil, fmt.Errorf("user: %s", err) } uname := string(ubytes) u := &User{ Uid: uname, Gid: uname, Username: uname, Name: uname, HomeDir: os.Getenv("home"), } return u, nil } func lookupUser(username string) (*User, error) { return nil, syscall.EPLAN9 } func lookupUserId(uid string) (*User, error) { return nil, syscall.EPLAN9 } func lookupGroup(groupname string) (*Group, error) { return nil, syscall.EPLAN9 } func lookupGroupId(string) (*Group, error) { return nil, syscall.EPLAN9 } func listGroups(*User) ([]string, error) { return nil, syscall.EPLAN9 }