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