diff --git a/config.go b/config.go index a0dfc29..6ba8250 100644 --- a/config.go +++ b/config.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "flag" "fmt" "os" "strconv" @@ -18,6 +19,7 @@ type Config struct { OutputHeight int `json:output_height` Grayscale bool Amount int + Quiet bool } // loads configuration values from json file @@ -43,5 +45,21 @@ func (c *Config) SetOutputDimensions() { c.OutputHeight = height } +func initConfigRegister() { + // command line arguments + flag.StringVar(&ConfigRegister.Method, "blending", "darken", "Blending methods : darken, lighten, fuckyfun") + flag.StringVar(&ConfigRegister.OutputDir, "output", "./", "Output directory") + flag.StringVar(&ConfigRegister.InputDir, "input", "/home/gator/Photos", "Input directory. Where to look the images from") + flag.StringVar(&ConfigRegister.BaseImage, "base-img", "", "Path to the base image to work with. Random image if not set") + flag.StringVar(&ConfigRegister.Dimensions, "dimensions", "1280x1024", "Out image dimensions. x") + flag.BoolVar(&ConfigRegister.Grayscale, "grayscale", false, "Output image in shade of gray (around 50)") + flag.IntVar(&ConfigRegister.Amount, "amount", 2, "Number of images to blend together") + flag.BoolVar(&ConfigRegister.Quiet, "quiet", false, "No progress messages") + flag.Parse() + + // set output's width and height + ConfigRegister.SetOutputDimensions() +} + // global register to acccess configuration values var ConfigRegister Config diff --git a/main.go b/main.go index c0af3fa..3dd7df6 100644 --- a/main.go +++ b/main.go @@ -1,28 +1,24 @@ package main import ( - "flag" _ "image/jpeg" _ "image/png" + "io/ioutil" + "log" ) func main() { - // command line arguments - flag.StringVar(&ConfigRegister.Method, "blending", "darken", "Blending methods : darken, lighten, fuckyfun") - flag.StringVar(&ConfigRegister.OutputDir, "output", "./", "Output directory") - flag.StringVar(&ConfigRegister.InputDir, "input", "/home/gator/Photos", "Input directory. Where to look the images from") - flag.StringVar(&ConfigRegister.BaseImage, "base-img", "", "Path to the base image to work with. Random image if not set") - flag.StringVar(&ConfigRegister.Dimensions, "dimensions", "1280x1024", "Out image dimensions. x") - flag.BoolVar(&ConfigRegister.Grayscale, "grayscale", false, "Output image in shade of gray (around 50)") - flag.IntVar(&ConfigRegister.Amount, "amount", 2, "Number of images to blend together") - flag.Parse() + // store command line arguments into the register + initConfigRegister() - // set output's width and height - ConfigRegister.SetOutputDimensions() + if ConfigRegister.Quiet { + log.SetOutput(ioutil.Discard) + + } // pool of workers unionizing, ready to blend a new picture using the power of friendship var pool blendWorkerPool - // main blending routine + // launch main blending routine pool.BlendImagesMain() }