github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/cmd/noms/noms_blob.go (about) 1 // Copyright 2016 Attic Labs, Inc. All rights reserved. 2 // Licensed under the Apache License, version 2.0: 3 // http://www.apache.org/licenses/LICENSE-2.0 4 5 package main 6 7 import ( 8 "runtime" 9 "strconv" 10 11 "github.com/attic-labs/kingpin" 12 13 "github.com/attic-labs/noms/cmd/util" 14 "github.com/attic-labs/noms/go/d" 15 ) 16 17 func nomsBlob(noms *kingpin.Application) (*kingpin.CmdClause, util.KingpinHandler) { 18 blob := noms.Command("blob", "Interact with blobs.") 19 20 blobPut := blob.Command("put", "imports a blob to a dataset") 21 concurrency := blobPut.Flag("concurrency", "number of concurrent HTTP calls to retrieve remote resources").Default(strconv.Itoa(runtime.NumCPU())).Int() 22 putFile := blobPut.Arg("file", "a file to import").Required().String() 23 putDB := blobPut.Arg("dbSpec", "the database to import into").String() 24 25 blobGet := blob.Command("export", "exports a blob from a dataset") 26 getDs := blobGet.Arg("dataset", "the dataset to export").Required().String() 27 getPath := blobGet.Arg("file", "an optional file to save the blob to").String() 28 29 return blob, func(input string) int { 30 switch input { 31 case blobPut.FullCommand(): 32 return nomsBlobPut(*putFile, *putDB, *concurrency) 33 case blobGet.FullCommand(): 34 return nomsBlobGet(*getDs, *getPath) 35 } 36 d.Panic("notreached") 37 return 1 38 } 39 }