package main import ( "os"; "flag"; "runtime"; "exec"; ) //command line parameters var build = flag.Bool("b", false, "Build") var clean = flag.Bool("c", false, "Clean") var run = flag.Bool("r", false, "Run") var format = flag.Bool("f",false,"Format the source code with gofmt") var outName *string = flag.String("o", "6.out", "The name of the output file") var help = flag.Bool("h", false, "Display help") func buildF(source string) { // check if file exists? } func formatF(source string) { os.Stdout.WriteString("Formatting source code...\n"); var command *exec.Cmd; var err os.Error; var params *[2]string = new([2]string); params[0] = "-w"; params[1] = source; command, err = exec.Run("gofmt", params, nil,exec.DevNull,exec.PassThrough,exec.PassThrough); command.Wait(0); os.Stdout.WriteString("Error: " + err.String() + "\n"); os.Stdout.WriteString("Formatted source code\n"); } func printHelp(f *flag.Flag) { os.Stdout.WriteString("-" + f.Name + "\n\t" + f.Usage + "\n") } func main() { var sourceName = ""; flag.Parse(); if flag.NArg() == 0 || *help == true { flag.VisitAll(printHelp); runtime.Goexit(); } else { sourceName = flag.Arg(0); os.Stdout.WriteString(sourceName + "\n"); } if *format { formatF(sourceName); } }