2024-05-13 07:55:22 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
"os/user"
|
2024-05-13 10:22:53 +00:00
|
|
|
"github.com/go-ini/ini"
|
2024-05-13 07:55:22 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var mongo_base_path = "/opt/my-mongo"
|
|
|
|
var replicaset_name = "techtransthai-db"
|
|
|
|
var network_name = "mongonet"
|
|
|
|
var number_of_containers int = 5
|
|
|
|
var max_mem_alloc_percent int = 95
|
|
|
|
var mongo_initdb_root_username = "sasha"
|
|
|
|
var mongo_initdb_root_password = "12345"
|
|
|
|
|
|
|
|
func check_root() {
|
|
|
|
currentUser, err := user.Current()
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Error getting current user:", err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
2024-05-13 10:22:53 +00:00
|
|
|
if currentUser.Uid != "1000" {
|
2024-05-13 07:55:22 +00:00
|
|
|
fmt.Println("You must be root to run this script")
|
2024-05-13 10:22:53 +00:00
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func check_settings() {
|
|
|
|
if number_of_containers < 1 && number_of_containers > 7 {
|
|
|
|
fmt.Println("Number of containers must be between 1 and 7")
|
2024-05-13 07:55:22 +00:00
|
|
|
os.Exit(2)
|
|
|
|
}
|
2024-05-13 10:22:53 +00:00
|
|
|
|
2024-05-13 07:55:22 +00:00
|
|
|
}
|
|
|
|
|
2024-05-13 10:22:53 +00:00
|
|
|
func ReadOSRelease(configfile string) map[string]string {
|
|
|
|
cfg, err := ini.Load(configfile)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Fail to read file: ", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
ConfigParams := make(map[string]string)
|
|
|
|
ConfigParams["ID"] = cfg.Section("").Key("ID").String()
|
|
|
|
|
|
|
|
return ConfigParams
|
|
|
|
}
|
|
|
|
|
|
|
|
func get_distro() string {
|
|
|
|
OSInfo := ReadOSRelease("/etc/os-release")
|
|
|
|
OSRelease := OSInfo["ID"]
|
|
|
|
return OSRelease
|
|
|
|
}
|
2024-05-13 07:55:22 +00:00
|
|
|
func main() {
|
|
|
|
check_root()
|
2024-05-13 10:22:53 +00:00
|
|
|
check_settings()
|
|
|
|
|
|
|
|
fmt.Println(get_distro())
|
|
|
|
|
2024-05-13 07:55:22 +00:00
|
|
|
}
|