|
Packit Service |
4d2de5 |
package main
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
import (
|
|
Packit Service |
4d2de5 |
"flag"
|
|
Packit Service |
4d2de5 |
"fmt"
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
"github.com/aws/aws-sdk-go/aws"
|
|
Packit Service |
4d2de5 |
"github.com/osbuild/osbuild-composer/internal/upload/awsupload"
|
|
Packit Service |
4d2de5 |
)
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
func main() {
|
|
Packit Service |
4d2de5 |
var accessKeyID string
|
|
Packit Service |
4d2de5 |
var secretAccessKey string
|
|
Packit Service |
4d2de5 |
var region string
|
|
Packit Service |
4d2de5 |
var bucketName string
|
|
Packit Service |
4d2de5 |
var keyName string
|
|
Packit Service |
4d2de5 |
var filename string
|
|
Packit Service |
4d2de5 |
var imageName string
|
|
Packit Service |
4d2de5 |
flag.StringVar(&accessKeyID, "access-key-id", "", "access key ID")
|
|
Packit Service |
4d2de5 |
flag.StringVar(&secretAccessKey, "secret-access-key", "", "secret access key")
|
|
Packit Service |
4d2de5 |
flag.StringVar(®ion, "region", "", "target region")
|
|
Packit Service |
4d2de5 |
flag.StringVar(&bucketName, "bucket", "", "target S3 bucket name")
|
|
Packit Service |
4d2de5 |
flag.StringVar(&keyName, "key", "", "target S3 key name")
|
|
Packit Service |
4d2de5 |
flag.StringVar(&filename, "image", "", "image file to upload")
|
|
Packit Service |
4d2de5 |
flag.StringVar(&imageName, "name", "", "AMI name")
|
|
Packit Service |
4d2de5 |
flag.Parse()
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
a, err := awsupload.New(region, accessKeyID, secretAccessKey)
|
|
Packit Service |
4d2de5 |
if err != nil {
|
|
Packit Service |
4d2de5 |
println(err.Error())
|
|
Packit Service |
4d2de5 |
return
|
|
Packit Service |
4d2de5 |
}
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
uploadOutput, err := a.Upload(filename, bucketName, keyName)
|
|
Packit Service |
4d2de5 |
if err != nil {
|
|
Packit Service |
4d2de5 |
println(err.Error())
|
|
Packit Service |
4d2de5 |
return
|
|
Packit Service |
4d2de5 |
}
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
fmt.Printf("file uploaded to %s\n", aws.StringValue(&uploadOutput.Location))
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
ami, err := a.Register(imageName, bucketName, keyName)
|
|
Packit Service |
4d2de5 |
if err != nil {
|
|
Packit Service |
4d2de5 |
println(err.Error())
|
|
Packit Service |
4d2de5 |
return
|
|
Packit Service |
4d2de5 |
}
|
|
Packit Service |
4d2de5 |
|
|
Packit Service |
4d2de5 |
fmt.Printf("AMI registered: %s\n", aws.StringValue(ami))
|
|
Packit Service |
4d2de5 |
}
|