in cli_tools/gce_export/main.go [238:285]
func main() {
flag.Parse()
ctx := context.Background()
if *gcsPath == "" {
log.Fatal("The flag -gcs_path must be provided")
}
if *disk == "" {
log.Fatal("The flag -disk must be provided")
}
bkt, obj, err := storageutils.GetGCSObjectPathElements(*gcsPath)
if err != nil {
log.Fatal(err)
}
file, err := os.Open(*disk)
if err != nil {
log.Fatal(err)
}
defer file.Close()
size, err := diskLength(file)
if err != nil {
log.Fatal(err)
}
fmt.Printf("GCEExport: Disk %s is %s, compressed size will most likely be much smaller.\n", *disk, humanize.IBytes(uint64(size)))
if !*noconfirm {
fmt.Print("Continue? (y/N): ")
var c string
fmt.Scanln(&c)
c = strings.ToLower(c)
if c != "y" && c != "yes" {
fmt.Println("Aborting")
os.Exit(0)
}
}
fmt.Println("GCEExport: Beginning export process...")
start := time.Now()
if err := stream(ctx, file, size, *bufferPrefix, bkt, obj); err != nil {
log.Fatal(err)
}
fmt.Println("GCEExport: Finished export in ", time.Since(start))
}