package main
import (
"net/http"
"fmt"
"os/exec"
"flag"
)
func main(){
http.HandleFunc("/", readHandle)
port := flag.Int("port", 2012, "Listen Port")
flag.Parse()
http.ListenAndServe(fmt.Sprintf(":%d", *port), nil)
}
func readHandle(w http.ResponseWriter, r *http.Request){
/* Command */
lsof := exec.Command("lsof", r.FormValue("path"))
wc := exec.Command("wc", "-l")
/* Pipe */
lsofOut,_ := lsof.StdoutPipe()
/* Command Start */
lsof.Start()
/* Stdin */
wc.Stdin = lsofOut
out,_ := wc.Output()
fmt.Fprintf(w, "%v", r.FormValue("path"))
fmt.Fprintf(w, "%s", out)
fmt.Fprintf(w, "%s", r.URL.Path[1:])
}