当前位置: 首页>>代码示例>>Golang>>正文


Golang Context.GetRootDirectory方法代码示例

本文整理汇总了Golang中github.com/matthieudelaro/nut/utils.Context.GetRootDirectory方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.GetRootDirectory方法的具体用法?Golang Context.GetRootDirectory怎么用?Golang Context.GetRootDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/matthieudelaro/nut/utils.Context的用法示例。


在下文中一共展示了Context.GetRootDirectory方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: FindProject

/// Look for a file from which to parse configuration (nut.yml in current
/// directory). Parse the file, and returns an updated context (root directory)
/// TODO: look for nut.yml file in parent folders
func FindProject(context Utils.Context) (Project, Utils.Context, error) {
	// var parentProject Project
	var project Project
	var err error
	var newContext Utils.Context
	var store Persist.Store

	foundDirectory := context.GetUserDirectory()
	// fullpath := filepath.Join(foundDirectory, NutFileName)
	fullpath := filepath.Join(foundDirectory, NutOverrideFileName)
	previousFoundDirectory := ""
	var exists bool

	searchHigher := true
	found := false
	for searchHigher == true {
		if exists, err = Utils.FileExists(fullpath); exists && err == nil {
			found = true
			searchHigher = false
		} else {
			fullpath = filepath.Join(foundDirectory, NutFileName)

			if exists, err = Utils.FileExists(fullpath); exists && err == nil {
				found = true
				searchHigher = false
			} else {
				previousFoundDirectory = foundDirectory
				foundDirectory = filepath.Dir(foundDirectory)
				// fullpath = filepath.Join(foundDirectory, NutFileName)
				fullpath = filepath.Join(foundDirectory, NutOverrideFileName)

				if foundDirectory == previousFoundDirectory {
					searchHigher = false
				}
			}
		}
	}

	if found {
		if project, err = LoadProjectFromFile(fullpath); err == nil {
			log.Debug("Parsed from file: ", fullpath)
			if newContext, err = Utils.NewContext(foundDirectory, context.GetUserDirectory()); err == nil {
				log.Debug("Context updated: ", newContext)
				if store, err = Persist.InitStore(newContext.GetRootDirectory()); err == nil {
					log.Debug("Store initialized: ", store)
					if err = ResolveDependencies(project, store, fullpath); err == nil {
						log.Debug("Resolved dependencies from file: ", fullpath)
						return project, newContext, err
					}
				}
			}
		}
	} else {
		err = errors.New("Could not find '" + NutFileName + "', neither in current directory nor in its parents.")
	}
	return nil, nil, err
}
开发者ID:RobbieClarken,项目名称:nut,代码行数:60,代码来源:utils.go

示例2: getFullContainerPath

func (self *VolumeV6) getFullContainerPath(context Utils.Context) (string, error) {
	if self.Container == "" {
		return "", errors.New("Undefined container path")
	} else {
		log.Debug("getFullContainerPath value ", self.Container)
		clean := containerFilepath.ToSlash(containerFilepath.Clean(self.Container))
		log.Debug("getFullContainerPath clean ", clean)
		if containerFilepath.IsAbs(clean) {
			log.Debug("getFullContainerPath isAbs")
			return clean, nil
		} else {
			log.Debug("getFullContainerPath is not Abs")
			log.Debug("getFullContainerPath return ", containerFilepath.Join(context.GetRootDirectory(), clean))
			return containerFilepath.Join(context.GetRootDirectory(), clean), nil
		}
	}
}
开发者ID:RobbieClarken,项目名称:nut,代码行数:17,代码来源:config_v6.go

示例3: getFullHostPath

func (self *VolumeV6) getFullHostPath(context Utils.Context) (string, error) {
	if self.Host == "" {
		return "", errors.New("Undefined host path")
	} else {
		log.Debug("getFullHostPath value ", self.Host)
		res := filepath.Clean(self.Host)
		log.Debug("getFullHostPath clean ", res)
		if !filepath.IsAbs(res) {
			log.Debug("getFullHostPath is not Abs")
			res = filepath.Join(context.GetRootDirectory(), res)
		}
		log.Debug("getFullHostPath value ", res)
		if strings.Contains(res, `:\`) { // path on windows. Eg: C:\\Users\
			log.Debug("getFullHostPath windows ", `:\`)
			parts := strings.Split(res, `:\`)
			parts[0] = strings.ToLower(parts[0]) // drive letter should be lower case
			res = "//" + parts[0] + "/" + filepath.ToSlash(parts[1])
		}

		log.Debug("getFullHostPath res ", res)
		return res, nil
	}
}
开发者ID:RobbieClarken,项目名称:nut,代码行数:23,代码来源:config_v6.go


注:本文中的github.com/matthieudelaro/nut/utils.Context.GetRootDirectory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。