示例#1
0
文件: fs.go 项目: beatgammit/ginta
func parseBootstrap(dir string) (string, error) {
	c := make(chan types.Resource)
	go func() {
		if file, err := open(dir + bootstrapExtension); err == nil {
			multi.ParseTo(file, "", c)
		}

		close(c)
	}()

	for res := range c {
		if res.Key == types.DisplayNameResourceKey {
			return res.Value, nil
		}
	}

	return "", types.ResourceNotFoundError(types.DisplayNameResourceKey)
}
示例#2
0
func doFetchResource(request *request) {
	if lang, ok := universe[request.code]; ok {

		iteration := true

		hierarchy := types.HierarchicalKey(request.key)

		for iteration {
			prefix, key := hierarchy.Split()

			if m, ok := lang.entries[prefix]; ok {
				if str, ok := m[key]; ok {
					request.reply <- reply{str, nil}
					return
				}
			}

			hierarchy = hierarchy.Parent()
			iteration = request.recurse && hierarchy.String() != ""
		}
	}

	request.reply <- reply{request.key, types.ResourceNotFoundError(request.key)}
}