説明なし

explore.go 952B

    package main import ( "fmt" "os" "os/exec" "path" "strings" ) func main() { dir := "." if len(os.Args) > 1 { dir = os.Args[1] } f, err := os.Open(dir) if err != nil { fmt.Println("Error:", err) os.Exit(1) } fi, err := f.Stat() if err != nil { fmt.Println("Error:", err) os.Exit(1) } var cmd *exec.Cmd if fi.IsDir() { fis, err := f.Readdir(-1) if err != nil { fmt.Println("Error:", err) os.Exit(1) } var rs []string for _, fi := range fis { if fi.IsDir() { continue } if strings.HasPrefix(strings.ToLower(fi.Name()), "readme") { rs = append(rs, fi.Name()) } } if len(rs) == 0 { cmd = exec.Command("ls", dir) } else { fmt.Printf("'%s':\n", rs[0]) cmd = exec.Command("head", "-n3", path.Join(dir, rs[0])) } } else { cmd = exec.Command("head", "-n3", path.Join(dir, f.Name())) } cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Run() }