예제 #1
0
파일: main.go 프로젝트: simonz05/blobserver
func main() {
	flag.Parse()
	log.Println("start uploader")

	if flag.NArg() == 0 {
		log.Fatal("Expected file argument missing")
	}

	c, err := client.New(*serverAddr)

	if err != nil {
		log.Fatal(err)
	}

	res, _ := c.MultiUploader(flag.Args())
	var enc client.ResourceEncoder

	switch *outputType {
	case "json":
		enc = client.NewJSONEncoder(os.Stdout)
	default:
		os.Exit(0)
	}

	err = enc.Encode(res)

	if err != nil {
		log.Fatal(err)
	}
}
예제 #2
0
파일: main.go 프로젝트: simonz05/blobserver
func newCtx(srvAddr string, paths []string) (*context, error) {
	c, err := client.New(srvAddr)
	if err != nil {
		return nil, err
	}
	ctx := &context{
		files:  make(map[string]string),
		client: c,
	}

	if len(paths) > 0 {
		for _, path := range paths {
			if _, ok := ctx.files[path]; ok {
				continue
			}

			buf, err := ioutil.ReadFile(path)

			if err != nil {
				return nil, err
			}

			ctx.files[path] = string(buf)
		}
	} else {
		buf, err := ioutil.ReadAll(os.Stdin)

		if err != nil {
			return nil, err
		}

		ctx.files["stdin"] = string(buf)
	}

	return ctx, nil
}