예제 #1
0
파일: main.go 프로젝트: hialin/hialin
func recursiveAddFile(space *hdm.Space, n nex.Nex) {
	if n.Type().IsKindOf(nexsys.Directory) && !strings.HasPrefix(nex.String(n), ".") {
		space.NewSurf().Add(n).Expand(2, nexsys.FileSystem)
		for it, x := nex.IterateRels(n, nex.Sub); x != nil; it, x = it.Next() {
			recursiveAddFile(space, x)
		}
	} else if n.Type().IsKindOf(nexsys.File) && isTextFile(n) {
		textFile := nex.Path(n, nexsys.TextFile)
		if _, rn := nex.IterateRels(n, nex.Elevation); rn != nil {
			tlog.Println("elevated node ", textFile)
			// textFile = rn
		}
		space.NewSurf().Add(textFile).Expand(100, nex.TopType)
	}
}
예제 #2
0
파일: view.go 프로젝트: hialin/hialin
func value(n nex.Nex) string {
	if n.Type().IsKindOf(nex.ByteUnit) && n.Type().IsKindOf(nex.Amount) {
		if v, err := nex.Fixed(n); err == nil {
			if v < 1024 {
				return fmt.Sprintf("%5d B", v)
			} else if v < 1024*1024 {
				return fmt.Sprintf("%5d KB", v/1024.0)
			} else if v < 1024*1024*1024 {
				return fmt.Sprintf("%5d MB", v/(1024*1024))
			} else if v < 1024*1024*1024*1024 {
				return fmt.Sprintf("%5d GB", v/(1024*1024*1024))
			} else if v < 1024*1024*1024*1024 {
				return fmt.Sprintf("%5d TB", v/(1024*1024*1024*1024))
			}
		}
	}
	return nex.String(n)
}