• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang testfs.FileSystem类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/jfindley/testfs.FileSystem的典型用法代码示例。如果您正苦于以下问题:Golang FileSystem类的具体用法?Golang FileSystem怎么用?Golang FileSystem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



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

示例1: writeVersion

func (e *exportedImage) writeVersion(fs testfs.FileSystem) (err error) {
	fp := e.VersionPath
	f, err := fs.Create(fp)
	if err != nil {
		return
	}
	defer f.Close()

	_, err = f.WriteString("1.0")
	if err != nil {
		return
	}

	return
}
开发者ID:jfindley,项目名称:automate,代码行数:15,代码来源:docker.go


示例2: writeData

func (e *exportedImage) writeData(fs testfs.FileSystem, data []byte) (err error) {
	fp := e.LayerTarPath
	f, err := fs.Create(fp)
	if err != nil {
		return
	}
	defer f.Close()

	_, err = f.Write(data)
	if err != nil {
		return
	}

	return err
}
开发者ID:jfindley,项目名称:automate,代码行数:15,代码来源:docker.go


示例3: touch

// touch a file.  Same as system touch.
func (f *File) touch(fs testfs.FileSystem, r core.ResponseWriter) {
	file, err := fs.OpenFile(f.path, os.O_CREATE|os.O_WRONLY, f.mode)
	if err != nil {
		r.Message("error", err.Error())
		r.Success(false)
		return
	}
	err = file.Close()
	if err != nil {
		r.Message("error", err.Error())
		r.Success(false)
		return
	}
	r.Message("info", "touched ", f.path)
	r.Success(true)
	r.Changed(true)
	return
}
开发者ID:jfindley,项目名称:automate,代码行数:19,代码来源:file.go


示例4: writeJSON

func (e *exportedImage) writeJSON(fs testfs.FileSystem) (err error) {
	fp := e.JSONPath
	f, err := fs.Create(fp)
	if err != nil {
		return
	}
	defer f.Close()

	jb, err := json.Marshal(e.LayerConfig)
	if err != nil {
		return
	}

	_, err = f.WriteString(string(jb))
	if err != nil {
		return
	}

	return err
}
开发者ID:jfindley,项目名称:automate,代码行数:20,代码来源:docker.go


示例5: set

// set sets the contents of a file.
func (f *File) set(fs testfs.FileSystem, r core.ResponseWriter) {
	var (
		file testfs.File
		err  error
	)

	// If we have a valid checksum for the input data and the file exists, read it
	// and avoid modifying the file if possible.
	if f.matching(fs) {
		r.Success(true)
		r.Changed(false)
		r.Message("info", f.path, " unchanged")
		return
	}

	file, err = fs.OpenFile(f.path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, f.mode)
	if err != nil {
		r.Message("error", err.Error())
		r.Success(false)
		return
	}

	err = bufferedWrite(f.data, file)
	if err != nil {
		r.Message("error", err.Error())
		r.Success(false)
		return
	}

	err = file.Close()
	if err != nil {
		r.Message("error", err.Error())
		r.Success(false)
		return
	}

	r.Message("info", "set content of ", f.path)
	r.Success(true)
	r.Changed(true)
	return
}
开发者ID:jfindley,项目名称:automate,代码行数:42,代码来源:file.go


示例6: archive

func archive(fs testfs.FileSystem) (out []byte, err error) {
	buf := new(bytes.Buffer)
	t := tar.NewWriter(buf)

	origDir, err := fs.Getwd()
	if err != nil {
		return
	}

	// Start at the root of the fs
	fs.Chdir("/")

	err = walk(fs, t)
	if err != nil {
		return
	}

	err = fs.Chdir(origDir)
	if err != nil {
		return
	}

	err = t.Close()

	return buf.Bytes(), err
}
开发者ID:jfindley,项目名称:automate,代码行数:26,代码来源:archive.go


示例7: matching

// matching returns true if a file matches the checksum, false otherwise
func (f *File) matching(fs testfs.FileSystem) bool {
	if f.sum == nil || len(f.sum) == 0 {
		return false
	}
	_, err := fs.Stat(f.path)
	if err != nil {
		return false
	}
	file, err := fs.OpenFile(f.path, os.O_RDONLY, 0)
	if err != nil {
		return false
	}
	data, err := ioutil.ReadAll(file)
	if err != nil {
		return false
	}

	if bytes.Compare(f.sum, data) == 0 {
		return true
	}

	return false
}
开发者ID:jfindley,项目名称:automate,代码行数:24,代码来源:file.go


示例8: remove

// remove removes a file.
func (f *File) remove(fs testfs.FileSystem, r core.ResponseWriter) {
	err := fs.Remove(f.path)
	switch {

	// Don't error if the file is already removed
	case os.IsNotExist(err):
		r.Success(true)
		r.Changed(false)
		r.Message("info", f.path, " already removed")

	case err == nil:
		r.Success(true)
		r.Changed(true)
		r.Message("info", f.path, " removed")

	default:
		r.Message("error", err.Error())
		r.Success(false)

	}

	return
}
开发者ID:jfindley,项目名称:automate,代码行数:24,代码来源:file.go


示例9: walk

func walk(fs testfs.FileSystem, t *tar.Writer) (err error) {

	cwd, err := fs.Getwd()
	if err != nil {
		return
	}

	f, err := fs.OpenFile(cwd, os.O_RDONLY, 0)
	if err != nil {
		return
	}

	fi, err := f.Readdir(-1)
	if err != nil {
		return
	}

	for _, file := range fi {
		// Add a new file to the archive
		var hdr *tar.Header
		hdr, err = tarHdr(file)
		if err != nil {
			return
		}

		// Make header name fully qualified
		if cwd[len(cwd)-1] == '/' {
			hdr.Name = cwd + hdr.Name
		} else {
			hdr.Name = cwd + "/" + hdr.Name
		}

		// Strip leading slashes
		if hdr.Name[0] == '/' {
			hdr.Name = hdr.Name[1:]
		}

		err = t.WriteHeader(hdr)
		if err != nil {
			return
		}

		// Write the file data to the archive
		if !file.IsDir() && file.Size() > 0 {
			var target testfs.File

			target, err = fs.Open(file.Name())
			if err != nil {
				return
			}

			_, err = io.Copy(t, target)
			if err != nil {
				return
			}
		}

		// Close the file in the archive
		err = t.Flush()
		if err != nil {
			return
		}

		// If a directory, recurse into it
		if file.IsDir() {
			err = fs.Chdir(file.Name())
			if err != nil {
				return
			}

			return walk(fs, t)
		}

	}

	return
}
开发者ID:jfindley,项目名称:automate,代码行数:77,代码来源:archive.go



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang json.MarshalCanonical函数代码示例发布时间:2022-05-23
下一篇:
Golang go-flags.ParseArgs函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap