// +build !cgo plan9 windows android

package sftp

import (
	"fmt"
	"os"
	"time"
)

func runLs(dirname string, dirent os.FileInfo) string {
	typeword := runLsTypeWord(dirent)
	numLinks := 1
	if dirent.IsDir() {
		numLinks = 0
	}
	username := "root"
	groupname := "root"
	mtime := dirent.ModTime()
	monthStr := mtime.Month().String()[0:3]
	day := mtime.Day()
	year := mtime.Year()
	now := time.Now()
	isOld := mtime.Before(now.Add(-time.Hour * 24 * 365 / 2))

	yearOrTime := fmt.Sprintf("%02d:%02d", mtime.Hour(), mtime.Minute())
	if isOld {
		yearOrTime = fmt.Sprintf("%d", year)
	}

	return fmt.Sprintf("%s %4d %-8s %-8s %8d %s %2d %5s %s", typeword, numLinks, username, groupname, dirent.Size(), monthStr, day, yearOrTime, dirent.Name())
}
