diff --git a/icons/error.go b/icons/error.go index 6c91fbb..59c4652 100644 --- a/icons/error.go +++ b/icons/error.go @@ -3,6 +3,7 @@ package icons import "fmt" type ImageError interface { + Error() string ErrorCode() string } diff --git a/icons/icons-api.go b/icons/icons-api.go index 4e61667..58efa48 100644 --- a/icons/icons-api.go +++ b/icons/icons-api.go @@ -26,6 +26,15 @@ type IconListResult struct { Icons []IconInfo `json:"icons"` } +type IconConvertResult struct { + File string `json:"file"` +} + +type MisConfigurationError struct { + Message string `json:"error"` + Code string `json:"errorCode"` +} + func LoadImage(file string) (image.Image, error) { reader, err := os.Open(file) if err != nil { diff --git a/main.go b/main.go index 88684af..3bf9e90 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,7 @@ import ( ) var ( - app = kingpin.New("app-builder", "app-builder").Version("0.3.0") + app = kingpin.New("app-builder", "app-builder").Version("0.3.1") icnsToPng = app.Command("icns-to-png", "convert ICNS to PNG") icnsToPngInFile = icnsToPng.Flag("input", "input ICNS file").Short('i').Required().String() @@ -51,7 +51,7 @@ func main() { if err != nil { log.Fatalf("%+v\n", err) } - err = writeIconListResult(result) + err = writeJsonToStdOut(result) if err != nil { log.Fatalf("%+v\n", err) } @@ -61,7 +61,7 @@ func main() { if err != nil { log.Fatalf("%+v\n", err) } - err = writeIconListResult(result) + err = writeJsonToStdOut(result) if err != nil { log.Fatalf("%+v\n", err) } @@ -101,14 +101,14 @@ func doConvertIcon() { } } - _, err = fmt.Printf("{\"file\":\"%s\"}", resultFile) + err = writeJsonToStdOut(icons.IconConvertResult{File: resultFile}) if err != nil { log.Fatalf("%+v\n", err) } } func printAppError(error icons.ImageError) { - _, err := fmt.Printf("{\"error\":\"%s\", \"errorCode\": \"%s\"}", error, error.ErrorCode()) + err := writeJsonToStdOut(icons.MisConfigurationError{Message: error.Error(), Code: error.ErrorCode()}) if err != nil { log.Fatalf("%+v\n", err) } @@ -130,7 +130,11 @@ func doBuildBlockMap() error { return err } - serializedInputInfo, err := json.Marshal(inputInfo) + return writeJsonToStdOut(inputInfo) +} + +func writeJsonToStdOut(v interface{}) error { + serializedInputInfo, err := json.Marshal(v) if err != nil { return err } @@ -140,14 +144,4 @@ func doBuildBlockMap() error { } return nil -} - -func writeIconListResult(result *icons.IconListResult) error { - serializedResult, err := json.Marshal(result) - if err != nil { - return err - } - - _, err = os.Stdout.Write(serializedResult) - return err -} +} \ No newline at end of file diff --git a/publish.sh b/publish.sh index 01aab57..5ee958f 100755 --- a/publish.sh +++ b/publish.sh @@ -9,7 +9,7 @@ if [ -z "$GITHUB_TOKEN" ] ; then fi NAME=app-builder -VERSION=0.3.0 +VERSION=0.3.1 OUT_DIR="$BASEDIR/dist/out" rm -rf "$OUT_DIR"