github.com/serge-v/zero@v1.0.2-0.20220911142406-af4b6a19e68a/examples/ps/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "log" 7 "net/http" 8 "os/exec" 9 "path/filepath" 10 "strings" 11 12 "github.com/serge-v/zero" 13 ) 14 15 func handler(w http.ResponseWriter, r *http.Request) { 16 fmt.Fprintln(w, r.URL.Path) 17 18 cmd := exec.Command("/bin/ls", "-lph", "/data") 19 cmd.Stdout = w 20 if err := cmd.Run(); err != nil { 21 fmt.Fprintln(w, err.Error()) 22 } 23 24 cmd = exec.Command("/bin/ls", "-lph", "/apps") 25 cmd.Stdout = w 26 if err := cmd.Run(); err != nil { 27 fmt.Fprintln(w, err.Error()) 28 } 29 30 cmd = exec.Command("/bin/ps", "-ef") 31 cmd.Stdout = w 32 if err := cmd.Run(); err != nil { 33 fmt.Fprintln(w, err.Error()) 34 } 35 36 cmd = exec.Command("/bin/cat", "/apps/ports.json") 37 cmd.Stdout = w 38 if err := cmd.Run(); err != nil { 39 fmt.Fprintln(w, err.Error()) 40 } 41 fmt.Fprintln(w, "") 42 43 files, err := filepath.Glob("/apps/*") 44 if err != nil { 45 fmt.Fprintln(w, err.Error()) 46 } 47 48 for _, fname := range files { 49 if strings.HasSuffix(fname, ".pid") { 50 continue 51 } 52 fmt.Fprintln(w, "app:", fname) 53 } 54 } 55 56 var deploy = flag.Bool("deploy", false, "") 57 58 func main() { 59 flag.Parse() 60 61 if *deploy { 62 if err := zero.Deploy(8094); err != nil { 63 log.Fatal(err) 64 } 65 return 66 } 67 68 http.HandleFunc("/", handler) 69 70 if err := http.ListenAndServe("127.0.0.1:8094", nil); err != nil { 71 log.Fatal(err) 72 } 73 }