github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/makeRawImage.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"syscall"
     6  
     7  	"github.com/Cloud-Foundations/Dominator/lib/filesystem/util"
     8  	"github.com/Cloud-Foundations/Dominator/lib/log"
     9  	objectclient "github.com/Cloud-Foundations/Dominator/lib/objectserver/client"
    10  )
    11  
    12  const filePerms = syscall.S_IRUSR | syscall.S_IWUSR | syscall.S_IRGRP |
    13  	syscall.S_IROTH
    14  
    15  func makeRawImageSubcommand(args []string, logger log.DebugLogger) error {
    16  	_, objectClient := getClients()
    17  	if err := makeRawImage(objectClient, args[0], args[1]); err != nil {
    18  		return fmt.Errorf("Error making raw image: %s", err)
    19  	}
    20  	return nil
    21  }
    22  
    23  func makeRawImage(objectClient *objectclient.ObjectClient, name,
    24  	rawFilename string) error {
    25  	fs, objectsGetter, err := getImageForUnpack(objectClient, name)
    26  	if err != nil {
    27  		return err
    28  	}
    29  	return util.WriteRaw(fs, objectsGetter, rawFilename, filePerms, tableType,
    30  		*minFreeBytes, *roundupPower, *makeBootable, *allocateBlocks, logger)
    31  }