src/server/pfs/pretty/pretty.go
func PrintFileInfo(w io.Writer, fileInfo *pfs.FileInfo, fullTimestamps bool) {
	fmt.Fprintf(w, "%s\t", fileInfo.File.Commit.ID)
	fmt.Fprintf(w, "%s\t", fileInfo.File.Path)
	if fileInfo.FileType == pfs.FileType_FILE {
		fmt.Fprint(w, "file\t")
	} else {
		fmt.Fprint(w, "dir\t")
	}
	if fileInfo.Committed == nil {
		fmt.Fprintf(w, "-\t")
	} else if fullTimestamps {
		fmt.Fprintf(w, "%s\t", fileInfo.Committed.String())
	} else {
		fmt.Fprintf(w, "%s\t", pretty.Ago(fileInfo.Committed))
	}
	fmt.Fprintf(w, "%s\t\n", units.BytesSize(float64(fileInfo.SizeBytes)))
}
func PrintFileInfo(w io.Writer, fileInfo *pfs.FileInfo, fullTimestamps bool) {
	fmt.Fprintf(w, "%s\t", fileInfo.File.Commit.ID)
	fmt.Fprintf(w, "%s\t", fileInfo.File.Path)
	if fileInfo.FileType == pfs.FileType_FILE {
		fmt.Fprint(w, "file\t")
	} else {
		fmt.Fprint(w, "dir\t")
	}
	if fileInfo.Committed == nil {
		fmt.Fprintf(w, "-\t")
	} else if fullTimestamps {
		fmt.Fprintf(w, "%s\t", fileInfo.Committed.String())
	} else {
		fmt.Fprintf(w, "%s\t", pretty.Ago(fileInfo.Committed))
	}
	fmt.Fprintf(w, "%s\t\n", units.BytesSize(float64(fileInfo.SizeBytes)))
}
// PrintFileInfo pretty-prints file info.
// If recurse is false and directory size is 0, display "-" instead
// If fast is true and file size is 0, display "-" instead