comparison file/file.go @ 13:da6c493cf08a

Move Unix-specific user auth files into unix_users.go.
author Paul Fisher <paul@pfish.zone>
date Thu, 29 Oct 2015 21:29:27 -0400
parents 1246b4b9028b
children 9b4ec6b5c23e
comparison
equal deleted inserted replaced
12:1c194fa9bbf4 13:da6c493cf08a
8 8
9 import ( 9 import (
10 "bufio" 10 "bufio"
11 "errors" 11 "errors"
12 "os" 12 "os"
13 "os/user"
14 "path"
15 "syscall" 13 "syscall"
16 "time" 14 "time"
17 15
18 "golang.org/x/sys/unix" 16 "golang.org/x/sys/unix"
19 "pfish.zone/go/multipass/auth" 17 "pfish.zone/go/multipass/auth"
29 ErrorBadFile = errors.New("multipass/file: Invalid file format") 27 ErrorBadFile = errors.New("multipass/file: Invalid file format")
30 ) 28 )
31 29
32 type ShadowFile struct { 30 type ShadowFile struct {
33 name string 31 name string
34 }
35
36 // ForUser gets the given user's ShadowFile.
37 func ForUser(username string) (*ShadowFile, error) {
38 u, err := user.Lookup(username)
39 if err != nil {
40 return nil, err
41 }
42 return New(path.Join(u.HomeDir, MultipassFile)), nil
43 }
44
45 // ForMe gets the current user's ShadowFile.
46 func ForMe() (*ShadowFile, error) {
47 u, err := user.Current()
48 if err != nil {
49 return nil, err
50 }
51 return New(path.Join(u.HomeDir, MultipassFile)), nil
52 } 32 }
53 33
54 // New creates a ShadowFile for reading at the given path. 34 // New creates a ShadowFile for reading at the given path.
55 // If a file needs to be created, uses the given GID to create it. 35 // If a file needs to be created, uses the given GID to create it.
56 func New(name string) *ShadowFile { 36 func New(name string) *ShadowFile {