package commands import ( "fmt" "io/ioutil" "git.kirsle.net/SketchyMaze/doodle/pkg/doodads" "git.kirsle.net/SketchyMaze/doodle/pkg/log" "github.com/urfave/cli/v2" ) // InstallScript to add the script to a doodad file. var InstallScript *cli.Command func init() { InstallScript = &cli.Command{ Name: "install-script", Usage: "install the JavaScript source to a doodad", ArgsUsage: " ", Flags: []cli.Flag{ &cli.StringFlag{ Name: "key", Usage: "chroma key color for transparency on input image files", Value: "#ffffff", }, }, Action: func(c *cli.Context) error { if c.NArg() != 2 { return cli.Exit( "Usage: doodad install-script ", 1, ) } var ( args = c.Args() scriptFile = args.Get(0) doodadFile = args.Get(1) ) // Read the JavaScript source. javascript, err := ioutil.ReadFile(scriptFile) if err != nil { return cli.Exit(err.Error(), 1) } doodad, err := doodads.LoadJSON(doodadFile) if err != nil { return cli.Exit( fmt.Sprintf("Failed to read doodad file: %s", err), 1, ) } doodad.Script = string(javascript) doodad.WriteJSON(doodadFile) log.Info("Installed script successfully") return nil }, } }