package main import ( "fmt" "os" "os/exec" "path/filepath" "strconv" ) func main() { if len(os.Args) < 5 { fmt.Println("Usage: go run main.go ") return } sourceFile := os.Args[1] numCopies, err := strconv.Atoi(os.Args[2]) if err != nil || numCopies <= 0 { fmt.Println("Invalid number of copies. Must be a positive integer.") return } shitSize, err := strconv.ParseInt(os.Args[3], 10, 64) // Parse shitSize as int64 if err != nil || shitSize <= 0 { fmt.Println("Invalid shit size. Must be a positive integer.") return } iterations, err := strconv.ParseInt(os.Args[4], 10, 8) for i := 1; i <= numCopies; i++ { outputFile := fmt.Sprintf("%s_glitched_%d%s", stripExtension(sourceFile), i, filepath.Ext(sourceFile), ) err := glitchImage(sourceFile, outputFile, shitSize, iterations) if err != nil { fmt.Printf("Error glitching file %d: %v\n", i, err) } } fmt.Println("GENREATING GIF YEAHH ") // now run ffmpeg to make a gif! cmd := exec.Command("ffmpeg", "-y", "-framerate 60", "-i", "./output/img_glitched_%d.jpeg output.gif") err = cmd.Run() check(err, "cannot run ffmpeg command!") // }