1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/docker/docker.go
2013-01-19 17:41:59 -08:00

47 lines
841 B
Go

package main
import (
"io"
"log"
"os"
"flag"
"net/http"
"net/url"
)
// Use this key to encode an RPC call into an URL,
// eg. domain.tld/path/to/method?q=get_user&q=gordon
const ARG_URL_KEY = "q"
func CallToURL(host string, cmd string, args []string) *url.URL {
qValues := make(url.Values)
for _, v := range args {
qValues.Add(ARG_URL_KEY, v)
}
return &url.URL{
Scheme: "http",
Host: host,
Path: "/" + cmd,
RawQuery: qValues.Encode(),
}
}
func main() {
flag.Parse()
var cmd string
var args []string
if len(flag.Args()) >= 1 {
cmd = flag.Args()[0]
}
if len(flag.Args()) >= 2 {
args = flag.Args()[1:]
}
u := CallToURL(os.Getenv("DOCKER"), cmd, args)
resp, err := http.Get(u.String())
if err != nil {
log.Fatal(err)
}
io.Copy(os.Stdout, resp.Body)
}