cmd

package
v0.0.0-...-4383a04 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2017 License: MIT Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RootCmd = &cobra.Command{
		Use:   "gosaic",
		Short: "Create image mosaics",
		Long:  "Create image mosaics",
	}
	Env environment.Environment
)
View Source
var CompareCmd = &cobra.Command{
	Use:    "compare",
	Short:  "Build comparisons for macro against index",
	Long:   "Build comparisons for macro against index",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if compareMacroId == 0 {
			Env.Fatalln("Macro id is required")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.Compare(Env, int64(compareMacroId))
	},
}
View Source
var CoverAspectCmd = &cobra.Command{
	Use:    "cover_aspect",
	Short:  "Create a aspect cover",
	Long:   "Create a aspect cover",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if coverAspectWidth == 0 {
			Env.Fatalln("width is required")
		} else if coverAspectWidth < 0 {
			Env.Fatalln("width must be greater than zero")
		}

		if coverAspectHeight == 0 {
			Env.Fatalln("height is required")
		} else if coverAspectHeight < 0 {
			Env.Fatalln("height must be greater than zero")
		}

		if coverAspect == "" {
			Env.Fatalln("aspect is required")
		}

		aspectStrings := strings.Split(coverAspect, "x")
		if len(aspectStrings) != 2 {
			Env.Fatalln("aspect format must be CxR")
		}

		aw, err := strconv.Atoi(aspectStrings[0])
		if err != nil {
			Env.Fatalf("Error converting aspect columns: %s\n", err.Error())
		}

		if aw == 0 {
			Env.Fatalln("aspect columns cannot be zero")
		} else if aw < 0 {
			Env.Fatalln("aspect columns must be greater than zero")
		}

		ah, err := strconv.Atoi(aspectStrings[1])
		if err != nil {
			Env.Fatalf("Error converting aspect rows: %s\n", err.Error())
		}

		if ah == 0 {
			Env.Fatalln("aspect rows cannot be zero")
		} else if ah < 0 {
			Env.Fatalln("aspect rows must be greater than zero")
		}

		if coverAspectSize == 0 {
			Env.Fatalln("num is required")
		} else if coverAspectSize < 0 {
			Env.Fatalln("num must be greater than zero")
		}

		err = Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.CoverAspect(Env, coverAspectWidth, coverAspectHeight, aw, ah, coverAspectSize)
	},
}
View Source
var CoverDrawCmd = &cobra.Command{
	Use:    "cover_draw PATH",
	Short:  "Draw a cover image",
	Long:   "Draw a cover image",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("Path is required")
		}

		if coverDrawId == 0 {
			Env.Fatalln("cover id is required")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		ext := strings.ToLower(filepath.Ext(args[0]))
		if ext != ".png" {
			Env.Fatalf("Out path must be a .png file")
		}

		controller.CoverDraw(Env, int64(coverDrawId), args[0])
	},
}
View Source
var CoverListCmd = &cobra.Command{
	Use:    "cover_list",
	Short:  "List cover entries",
	Long:   "List cover entries",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.CoverList(Env)
	},
}
View Source
var CoverRmCmd = &cobra.Command{
	Use:    "cover_rm NAMES...",
	Short:  "Remove cover entries",
	Long:   "Remove cover entries",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.CoverRm(Env, args)
	},
}
View Source
var IndexCmd = &cobra.Command{
	Use:   "index [PATHS...]",
	Short: "Manage index images",
	Long:  "Manage index images",
	Run: func(c *cobra.Command, args []string) {
		paths := make([]string, 0)
		if len(args) > 0 {
			paths = append(paths, args...)
		}

		stat, _ := os.Stdin.Stat()
		if (stat.Mode() & os.ModeCharDevice) == 0 {
			b, err := ioutil.ReadAll(os.Stdin)
			if err != nil {
				Env.Fatalf("Unable to read from stdin")
			}

			inPaths := strings.Split(string(b), "\n")
			for _, inp := range inPaths {
				if inp != "" {
					paths = append(paths, inp)
				}
			}
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		if indexClean {

			if len(paths) != 0 {
				Env.Fatalln("Cannot specify paths with index clean")
			}
			_, err = controller.IndexClean(Env)
			if err != nil {
				Env.Printf("Error cleaning index: %s\n", err.Error())
			}
		} else if indexList {

			if len(paths) != 0 {
				Env.Fatalln("Cannot specify paths with index list")
			}
			err = controller.IndexList(Env)
			if err != nil {
				Env.Printf("Error listing index: %s\n", err.Error())
			}
		} else if indexRm {

			if len(paths) == 0 {
				Env.Fatalln("Must specify paths to rm from index")
			}
			err = controller.IndexRm(Env, paths)
			if err != nil {
				Env.Printf("Error removing index images: %s\n", err.Error())
			}
		} else {

			if len(paths) == 0 {
				Env.Fatalln("Must specify paths to index")
			}
			err = controller.Index(Env, paths)
			if err != nil {
				Env.Printf("Error adding index images: %s\n", err.Error())
			}
		}
	},
}
View Source
var MacroAspectCmd = &cobra.Command{
	Use:    "macro_aspect PATH",
	Short:  "Add cover aspect and macro",
	Long:   "Add cover aspect and macro",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("PATH is required")
		}

		if args[0] == "" {
			Env.Fatalln("Macro path is required")
		}

		if macroAspectWidth < 0 {
			Env.Fatalln("width must be greater than zero")
		}

		if macroAspectHeight < 0 {
			Env.Fatalln("height must be greater than zero")
		}

		if macroAspect == "" {
			Env.Fatalln("aspect is required")
		}

		aspectStrings := strings.Split(macroAspect, "x")
		if len(aspectStrings) != 2 {
			Env.Fatalln("aspect format must be CxR")
		}

		aw, err := strconv.Atoi(aspectStrings[0])
		if err != nil {
			Env.Fatalf("Error converting aspect columns: %s\n", err.Error())
		}

		if aw == 0 {
			Env.Fatalln("aspect columns cannot be zero")
		} else if aw < 0 {
			Env.Fatalln("aspect columns must be greater than zero")
		}

		ah, err := strconv.Atoi(aspectStrings[1])
		if err != nil {
			Env.Fatalf("Error converting aspect rows: %s\n", err.Error())
		}

		if ah == 0 {
			Env.Fatalln("aspect rows cannot be zero")
		} else if ah < 0 {
			Env.Fatalln("aspect rows must be greater than zero")
		}

		if macroAspectSize == 0 {
			Env.Fatalln("num is required")
		} else if macroAspectSize < 0 {
			Env.Fatalln("num must be greater than zero")
		}

		err = Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MacroAspect(Env, args[0], macroAspectWidth, macroAspectHeight, aw, ah, macroAspectSize, macroAspectCoverOutfile, macroAspectMacroOutfile)
	},
}
View Source
var MacroCmd = &cobra.Command{
	Use:    "macro PATH",
	Short:  "Add macro",
	Long:   "Add macro",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("Macro path is required")
		}

		if args[0] == "" {
			Env.Fatalln("Macro path is required")
		}

		if macroCoverId == 0 {
			Env.Fatalln("Cover id is required")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.Macro(Env, args[0], int64(macroCoverId), macroOutfile)
	},
}
View Source
var MacroListCmd = &cobra.Command{
	Use:    "macro_list",
	Short:  "List macro entries",
	Long:   "List macro entries",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MacroList(Env)
	},
}
View Source
var MacroQuadCmd = &cobra.Command{
	Use:    "macro_quad PATH",
	Short:  "Add quad cover and macro",
	Long:   "Add quad cover and macro",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("PATH is required")
		}

		if args[0] == "" {
			Env.Fatalln("Macro path is required")
		}

		if macroQuadWidth < 0 {
			Env.Fatalln("width must be greater than zero")
		}

		if macroQuadHeight < 0 {
			Env.Fatalln("height must be greater than zero")
		}

		if macroQuadSize == 0 &&
			macroQuadMinDepth == 0 &&
			macroQuadMaxDepth == 0 &&
			macroQuadMinArea == 0 &&
			macroQuadMaxArea == 0 {
			Env.Fatalln("Add least one of size, min-depth, max-depth, min-area, or max-area must be non-zero.")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MacroQuad(
			Env,
			args[0],
			macroQuadWidth,
			macroQuadHeight,
			macroQuadSize,
			macroQuadMinDepth,
			macroQuadMaxDepth,
			macroQuadMinArea,
			macroQuadMaxArea,
			macroQuadCoverOutfile,
			macroQuadMacroOutfile,
		)
	},
}
View Source
var MosaicAspectCmd = &cobra.Command{
	Use:   "aspect PATH",
	Short: "Create an aspect mosaic from image at PATH",
	Long:  "Create an aspect mosaic from image at PATH",
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("Mosaic path is required")
		}

		if args[0] == "" {
			Env.Fatalln("Mosaic path is required")
		}

		if mosaicAspectCoverWidth < 0 {
			Env.Fatalln("width must be greater than zero")
		}

		if mosaicAspectCoverHeight < 0 {
			Env.Fatalln("height must be greater than zero")
		}

		var (
			aw, ah int
			err    error
		)

		if mosaicAspectPartialAspect == "" {
			aw = 0
			ah = 0
		} else {
			aspectStrings := strings.Split(mosaicAspectPartialAspect, "x")
			if len(aspectStrings) != 2 {
				Env.Fatalln("aspect format must be CxR")
			}

			aw, err = strconv.Atoi(aspectStrings[0])
			if err != nil {
				Env.Fatalf("Error converting aspect columns: %s\n", err.Error())
			}

			if aw < 0 {
				Env.Fatalln("aspect columns must be greater than zero")
			}

			ah, err = strconv.Atoi(aspectStrings[1])
			if err != nil {
				Env.Fatalf("Error converting aspect rows: %s\n", err.Error())
			}

			if ah < 0 {
				Env.Fatalln("aspect rows must be greater than zero")
			}
		}

		if mosaicAspectFillType != "best" && mosaicAspectFillType != "random" {
			Env.Fatalln("Invalid fill-type")
		}

		err = Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MosaicAspect(
			Env,
			args[0],
			mosaicAspectName,
			mosaicAspectFillType,
			mosaicAspectCoverWidth,
			mosaicAspectCoverHeight,
			aw,
			ah,
			mosaicAspectSize,
			mosaicAspectMaxRepeats,
			mosaicAspectThreashold,
			mosaicAspectCoverOutfile,
			mosaicAspectMacroOutfile,
			mosaicAspectOutfile,
			mosaicAspectCleanup,
			mosaicAspectDestructive,
		)
	},
}
View Source
var MosaicBuildCmd = &cobra.Command{
	Use:    "mosaic_build NAME",
	Short:  "Build mosaic",
	Long:   "Build mosaic",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if mosaicBuildMacroId == 0 {
			Env.Fatalln("Macro id is required")
		}

		if mosaicBuildFillType != "best" && mosaicBuildFillType != "random" {
			Env.Fatalln("type must be either 'best' or 'random'")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MosaicBuild(Env, mosaicBuildFillType, int64(mosaicBuildMacroId), mosaicBuildMaxRepeats, mosaicBuildDestructive)
	},
}
View Source
var MosaicCmd = &cobra.Command{
	Use:   "mosaic",
	Short: "Create a mosaic",
	Long:  "Create a mosaic",
}
View Source
var MosaicDrawCmd = &cobra.Command{
	Use:    "mosaic_draw OUTFILE",
	Short:  "Draw mosaic",
	Long:   "Draw mosaic",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("Mosaic out file is required")
		}

		if args[0] == "" {
			Env.Fatalln("Mosaic out file is required")
		}

		if mosaicDrawMosaicId == 0 {
			Env.Fatalln("Mosaic id is required")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MosaicDraw(Env, int64(mosaicDrawMosaicId), args[0])
	},
}
View Source
var MosaicListCmd = &cobra.Command{
	Use:    "mosaic_list",
	Short:  "List mosaic entries",
	Long:   "List mosaic entries",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MosaicList(Env)
	},
}
View Source
var MosaicQuadCmd = &cobra.Command{
	Use:   "quad PATH",
	Short: "Create quad-tree mosaic from image at PATH",
	Long:  "Create quad-tree mosaic from image at PATH",
	Run: func(c *cobra.Command, args []string) {
		if len(args) != 1 {
			Env.Fatalln("Mosaic path is required")
		}

		if args[0] == "" {
			Env.Fatalln("Mosaic path is required")
		}

		if mosaicQuadCoverWidth < 0 {
			Env.Fatalln("width must be greater than zero")
		}

		if mosaicQuadCoverHeight < 0 {
			Env.Fatalln("height must be greater than zero")
		}

		if mosaicQuadFillType != "best" && mosaicAspectFillType != "random" {
			Env.Fatalln("Invalid fill-type")
		}

		if mosaicQuadSize == 0 &&
			mosaicQuadMinDepth == 0 &&
			mosaicQuadMaxDepth == 0 &&
			mosaicQuadMinArea == 0 &&
			mosaicQuadMaxArea == 0 {
			Env.Fatalln("Add least one of size, min-depth, max-depth, min-area, or max-area must be non-zero.")
		}

		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		controller.MosaicQuad(
			Env,
			args[0],
			mosaicQuadName,
			mosaicQuadFillType,
			mosaicQuadCoverWidth,
			mosaicQuadCoverHeight,
			mosaicQuadSize,
			mosaicQuadMinDepth,
			mosaicQuadMaxDepth,
			mosaicQuadMinArea,
			mosaicQuadMaxArea,
			mosaicQuadMaxRepeats,
			mosaicQuadThreashold,
			mosaicQuadCoverOutfile,
			mosaicQuadMacroOutfile,
			mosaicQuadOutfile,
			mosaicQuadCleanup,
			mosaicQuadDestructive,
		)
	},
}
View Source
var PartialAspectCmd = &cobra.Command{
	Use:    "partial_aspect",
	Short:  "Build partial aspects for indexed images",
	Long:   "Build partial aspects for indexed images",
	Hidden: true,
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			Env.Fatalf("Unable to initialize environment: %s\n", err.Error())
		}
		defer Env.Close()

		if partialAspectMacroId == 0 {
			Env.Fatalf("Macro id is required")
		}

		controller.PartialAspect(Env, int64(partialAspectMacroId), partialAspectThreashold)
	},
}
View Source
var StatusCmd = &cobra.Command{
	Use:   "status",
	Short: "Show environment status",
	Long:  "Show environment status",
	Run: func(c *cobra.Command, args []string) {
		err := Env.Init()
		if err != nil {
			fmt.Printf("Unable to initialize environment: %s\n", err.Error())
			os.Exit(1)
		}
		defer Env.Close()

		controller.Status(Env)
	},
}
View Source
var VersionCmd = &cobra.Command{
	Use:   "version",
	Short: "Print the version number and exit",
	Long:  "Print the version number and exit",
	Run: func(c *cobra.Command, args []string) {
		fmt.Printf("gosaic %s (%s) %s %s\n",
			environment.Version,
			environment.BuildTime,
			environment.BuildUser,
			environment.BuildHash)
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL