first version

This commit is contained in:
jay
2022-05-27 12:06:26 +08:00
commit b351de0f64
4 changed files with 370 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
package main
import (
"context"
"docker-save/internal/docker"
"log"
"git.trj.tw/golang/utils"
"github.com/spf13/cobra"
)
var rootCmd *cobra.Command
func main() {
var outputPath string
var imageName string
var tarName string
rootCmd = &cobra.Command{
Use: "docker-save",
Short: "docker-save is a tool to save docker images to tarballs",
Run: func(cmd *cobra.Command, args []string) {
outputPath = utils.ParsePath(outputPath)
if !utils.CheckExists(outputPath, true) || !utils.IsDir(outputPath) {
log.Fatal("output path is not a directory")
}
ctx := context.Background()
if err := docker.SaveImageTar(ctx, imageName, outputPath, tarName); err != nil {
log.Fatal(err)
}
},
}
rootCmd.Flags().StringVarP(&outputPath, "output", "o", "", "output path")
rootCmd.Flags().StringVarP(&imageName, "image", "i", "", "image name")
rootCmd.Flags().StringVarP(&tarName, "name", "n", "", "tar name")
rootCmd.MarkFlagRequired("image")
rootCmd.MarkFlagRequired("output")
if err := rootCmd.Execute(); err != nil {
log.Fatal(err)
}
}