9fans.net/go@v0.0.7/cmd/acme/post.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"log"
     6  	"os"
     7  	"os/exec"
     8  	"strings"
     9  
    10  	"9fans.net/go/plan9/client"
    11  )
    12  
    13  var chattyfuse int
    14  
    15  func post9pservice(rfd, wfd *os.File, name, mtpt string) error {
    16  	if name == "" && mtpt == "" {
    17  		rfd.Close()
    18  		wfd.Close()
    19  		return fmt.Errorf("nothing to do")
    20  	}
    21  
    22  	if name != "" {
    23  		var addr string
    24  		if strings.Contains(addr, "!") { // assume is already network address
    25  			addr = name
    26  		} else {
    27  			addr = "unix!" + client.Namespace() + "/" + name
    28  		}
    29  		cmd := exec.Command("9pserve", "-u", addr)
    30  		cmd.Stdin = rfd
    31  		cmd.Stdout = wfd
    32  		cmd.Stderr = os.Stderr
    33  		err := cmd.Run()
    34  		if err != nil {
    35  			return err
    36  		}
    37  		if mtpt != "" {
    38  			// reopen
    39  			log.Fatalf("post9pservice mount not implemented")
    40  		}
    41  	}
    42  	if mtpt != "" {
    43  		log.Fatalf("post9pservice mount not implemented")
    44  	}
    45  	return nil
    46  }