summaryrefslogtreecommitdiff
path: root/src/nshd/hackers_git/hackers_parse.go
blob: 5152b552abb53f6b60dfd4461dac315c4d70024f (plain)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package hackers_git

import (
	"fmt"
	yaml "gopkg.in/yaml.v2"
	"io/ioutil"
	"nslcd_proto"
	"os"
)

type yaml_user struct {
	username string
	fullname string
	shell    string
	groups   []string
}

func filename2uid(filename string) int32 {
	// TODO
	return 0
}

func load_user_yaml(filename string) (ret nslcd_proto.Passwd, err error) {
	ret.UID = filename2uid(filename)
	if ret.UID < 0 {
		err = fmt.Errorf("Invalid user filename: %q", filename)
		return
	}
	file, err := os.Open(filename)
	if err != nil {
		return
	}
	contents, err := ioutil.ReadAll(file)
	if err != nil {
		return
	}
	var user yaml_user
	err = yaml.Unmarshal(contents, &user)

	ret.Name = user.username
	ret.Password = "x"
	ret.GID = name2gid("users")
	ret.GECOS = user.fullname
	ret.HomeDir = "/home/" + ret.Name
	ret.Shell = user.shell

	return
}

func load_user_password(filename string) string {
	// TODO
	return "!"
}