mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
47 lines
841 B
Go
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)
|
|
}
|