У меня есть программа, которая требует 1 или 2 аргумента в зависимости от того, что пользователи хотят запустить
var (
clientSet = tools.NewClientSet(os.Args[2])
)
func main {
if os.Args[1] == "validate" {
// run validate function, no need for user to have os.Args[2]
}else if os.Args[1] == "sync" {
// run sync function that requires os.Args[2]
}
}
func foo{
tools.Manage(clientSet)
}
Мне нужно, чтобы переменная clientSet
была глобальной, но мне не нужно, чтобы у пользователей был os.Args [2], если пользователи хотят использовать только функцию validate. Помещение функции clientSet
в main()
приведет к поломке моей функции foo()
, и я не могу объявить переменную с пустым значением.
Поэтому я хочу, чтобы мои пользователи могли без проблем запускать go run main.go validate
и go run main.go sync production
.
* Производство - произвольное значение
Я мог бы попросить своих пользователей запустить go run main.go validate _
, чтобы решить эту проблему, но это было бы не изящно. Как лучше всего решить эту проблему?