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  }