tidy up
This commit is contained in:
parent
f1b8318c1c
commit
b4083e455c
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
*.java
|
*.java
|
||||||
|
.*
|
||||||
|
*.txt
|
||||||
|
67
main.go
67
main.go
@ -11,13 +11,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func usage() {
|
func usage() {
|
||||||
|
//TODO: Fill this out
|
||||||
fmt.Fprintf(os.Stderr, "Usage:\n")
|
fmt.Fprintf(os.Stderr, "Usage:\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func formatFileSize(fi fs.FileInfo) (size string) {
|
func FormatFileSize(fi fs.FileInfo) (size string) {
|
||||||
switch fileSizeFloat := float64(fi.Size()); {
|
fileSizeFloat := float64(fi.Size())
|
||||||
|
switch {
|
||||||
case fileSizeFloat > (1024 * 1024 * 1024): //GB
|
case fileSizeFloat > (1024 * 1024 * 1024): //GB
|
||||||
fileSizeFloat /= (1024 * 1024 * 1024)
|
fileSizeFloat /= (1024 * 1024 * 1024)
|
||||||
size = strconv.FormatFloat(fileSizeFloat, 'f', 1, 64)
|
size = strconv.FormatFloat(fileSizeFloat, 'f', 1, 64)
|
||||||
@ -42,7 +43,7 @@ func formatFileSize(fi fs.FileInfo) (size string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFileMod(fi fs.FileInfo) (mod string) {
|
func GetFileMod(fi fs.FileInfo) (mod string) {
|
||||||
//day month short time HH:MM
|
//day month short time HH:MM
|
||||||
day := strconv.Itoa(fi.ModTime().Day())
|
day := strconv.Itoa(fi.ModTime().Day())
|
||||||
month := fi.ModTime().Month().String()
|
month := fi.ModTime().Month().String()
|
||||||
@ -68,10 +69,14 @@ func PrintHeaders() {
|
|||||||
headersOutput.Printf("%11s\n", "Name")
|
headersOutput.Printf("%11s\n", "Name")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetDir() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var flagNoColor = flag.Bool("no-colour", false, "Disable color output")
|
var flagNoColor = flag.Bool("no-colour", false, "Disable color output")
|
||||||
var flagNoList = flag.Bool("no-l", false, "Disable ls -l output")
|
var flagEnableL = flag.Bool("l", false, "Enable ls -l output")
|
||||||
var dir string
|
var flagEnableA = flag.Bool("a", true, "Enable ls -a output")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
@ -79,52 +84,48 @@ func main() {
|
|||||||
color.NoColor = true
|
color.NoColor = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if *flagEnableL {
|
||||||
|
PrintHeaders()
|
||||||
|
}
|
||||||
|
|
||||||
dirOutput := color.New(color.FgCyan, color.Bold)
|
dirOutput := color.New(color.FgCyan, color.Bold)
|
||||||
fileOutput := color.New(color.FgWhite, color.Bold)
|
fileOutput := color.New(color.FgWhite, color.Bold)
|
||||||
|
|
||||||
if len(os.Args) == 1 {
|
files, err := os.ReadDir(".")
|
||||||
dir = "."
|
|
||||||
} else {
|
|
||||||
dir = os.Args[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
files, err := os.ReadDir(dir)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
usage()
|
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||||
}
|
|
||||||
if !*flagNoList {
|
|
||||||
PrintHeaders()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
fileName := file.Name()
|
fileName := file.Name()
|
||||||
fileType := file.Type()
|
dirDash := "-"
|
||||||
dirSize := "-"
|
|
||||||
fileSize := ""
|
fileSize := ""
|
||||||
fileModTime := ""
|
fileModTime := ""
|
||||||
|
|
||||||
fi, err := os.Stat(fileName)
|
fi, err := os.Stat(fileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
usage()
|
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||||
}
|
}
|
||||||
fileSize = formatFileSize(fi)
|
|
||||||
fileModTime = getFileMod(fi)
|
|
||||||
|
|
||||||
if !*flagNoList {
|
fileSize = FormatFileSize(fi)
|
||||||
if file.IsDir() {
|
fileModTime = GetFileMod(fi)
|
||||||
dirOutput.Printf("%s %7s %7s\t%s\n", fileType, dirSize, fileModTime, fileName) //leave this
|
fileType := fi.Mode()
|
||||||
|
|
||||||
|
if *flagEnableL { //PRINT JUST FILE FORMAT
|
||||||
|
if file.IsDir() && (*flagEnableA && file.Name()[:1] == ".") {
|
||||||
|
dirOutput.Printf("%s ", fileName)
|
||||||
|
} else {
|
||||||
|
fileOutput.Printf("%s ", fileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else { //PRINT LIST FORMAT
|
||||||
|
if file.IsDir() && (*flagEnableA && file.Name()[:1] == ".") { //print -l
|
||||||
|
dirOutput.Printf("%s %7s %7s\t%s\n", fileType, dirDash, fileModTime, fileName)
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("%7s %7s %4s", fileType, fileSize, fileModTime)
|
fmt.Printf("%7s %7s %4s", fileType, fileSize, fileModTime)
|
||||||
fileOutput.Printf("\t%s\n", fileName)
|
fileOutput.Printf("\t%s\n", fileName)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if file.IsDir() {
|
|
||||||
dirOutput.Printf("%s\n", fileName)
|
|
||||||
} else {
|
|
||||||
fileOutput.Printf("%s\n", fileName)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
fmt.Println()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user