package main import ( "fmt" "os/exec" "bufio" ) var mongoBasePath = "/opt/my-mongo" var replicasetName = "techtransthai-db" var networkName = "mongonet" var numberOfContainers int = 5 var maxMemAllocPercent int = 95 var mongoInitdbRootUsername = "sasha" var mongoInitdbRootPassword = "12345" func ExecSystem(command string) { cmd := exec.Command("/usr/bin/bash", "-c", command) stdout, err := cmd.StdoutPipe() if err != nil { fmt.Println("Error obtaining stdout pipe:", err) return } // Start the command if err := cmd.Start(); err != nil { fmt.Println("Error starting command:", err) return } // Read the output line by line scanner := bufio.NewScanner(stdout) for scanner.Scan() { fmt.Println(scanner.Text()) } // Check for any errors if err := scanner.Err(); err != nil { fmt.Println("Error reading command output:", err) } // Wait for the command to finish if err := cmd.Wait(); err != nil { fmt.Println("Error waiting for command:", err) } } func genKeys() { fmt.Printf("\033[1;32mGenerating keys\033[0m\n") keyfileLocation := mongoBasePath + "/mongodb-keyfile" ExecSystem("openssl rand -base64 741 > " + keyfileLocation) ExecSystem("chmod 600 " + keyfileLocation) ExecSystem("chown 999 " + keyfileLocation) } func main() { checkRoot() checkSettings() instDeps() genKeys() dockerNetworkCreate() dockerPullMongo() dockerRunMongo() initReplMongo() }