вааа вааа вааа package main import ( "Auto/chains" "Auto/mnemonic" "Auto/utils" "Auto/wallets" "flag" "fmt" "os" ct "github.com/daviddengcn/go-colortext" ) // Струтура наших флагов для запуска type ClIOptions struct { p string many int dl bool k bool w bool } func main() { // Так как Go фактически не предназначен для GUI приложений, то будем делать cli // Создаем экземляр нашей структуры с опции и парсим в нее значения флагов. // Думаю тут все понятно var opt ClIOptions flag.StringVar(&opt.p, "p", "", "path to seed") flag.IntVar(&opt.many, "many", 0, "print zero balance") flag.BoolVar(&opt.dl, "dl", false, "delete old balance.txt") flag.BoolVar(&opt.k, "k", false, "check keys") flag.BoolVar(&opt.w, "w", false, "extract seed from wallets") flag.Parse() if opt.dl { os.Remove("balance.txt") } // Так как у нас есть несколько алгоримтов работы, а пихать все в main не гетеросексуально, то // мы вынесем все в отдельную функцию ChooseOption(&opt) } func ChooseOption(opt *ClIOptions) { if opt.w { fmt.Println("Start scan wallets") // Для информативности wal := wallets.StartCrawling(opt.p) // Старт для сбора информации с кошельков mn := wallets.DRunner(wal) // Расшифровка и парс фраз fmt.Println("Start reading and generate wallets") mnemonic.ReadMnemonic(opt.p, opt.k, mn, opt.many) // Запуск генерации кошельков ct.Foreground(ct.Green, false) fmt.Printf("Total wallet generated: %d\n", len(mnemonic.TotalWallet)) ct.ResetColor() chains.CheckRunner(mnemonic.TotalWallet, opt.k) // Запуск проверки балансов utils.SaveMnemonic(mn) os.Exit(1) } fmt.Println("Start reading and generate wallet's") mnemonic.ReadMnemonic(opt.p, opt.k, nil, opt.many) ct.Foreground(ct.Green, false) fmt.Printf("Total wallet generated: %d\n", len(mnemonic.TotalWallet)) ct.ResetColor() chains.CheckRunner(mnemonic.TotalWallet, opt.k) } C package main import ( "Auto/chains" "Auto/mnemonic" "Auto/utils" "Auto/wallets" "flag" "fmt" "os" ct "github.com/daviddengcn/go-colortext" ) // Струтура наших флагов для запуска type ClIOptions struct { p string many int dl bool k bool w bool } func main() { // Так как Go фактически не предназначен для GUI приложений, то будем делать cli // Создаем экземляр нашей структуры с опции и парсим в нее значения флагов. // Думаю тут все понятно var opt ClIOptions flag.StringVar(&opt.p, "p", "", "path to seed") flag.IntVar(&opt.many, "many", 0, "print zero balance") flag.BoolVar(&opt.dl, "dl", false, "delete old balance.txt") flag.BoolVar(&opt.k, "k", false, "check keys") flag.BoolVar(&opt.w, "w", false, "extract seed from wallets") flag.Parse() if opt.dl { os.Remove("balance.txt") } // Так как у нас есть несколько алгоримтов работы, а пихать все в main не гетеросексуально, то // мы вынесем все в отдельную функцию ChooseOption(&opt) } func ChooseOption(opt *ClIOptions) { if opt.w { fmt.Println("Start scan wallets") // Для информативности wal := wallets.StartCrawling(opt.p) // Старт для сбора информации с кошельков mn := wallets.DRunner(wal) // Расшифровка и парс фраз fmt.Println("Start reading and generate wallets") mnemonic.ReadMnemonic(opt.p, opt.k, mn, opt.many) // Запуск генерации кошельков ct.Foreground(ct.Green, false) fmt.Printf("Total wallet generated: %d\n", len(mnemonic.TotalWallet)) ct.ResetColor() chains.CheckRunner(mnemonic.TotalWallet, opt.k) // Запуск проверки балансов utils.SaveMnemonic(mn) os.Exit(1) } fmt.Println("Start reading and generate wallet's") mnemonic.ReadMnemonic(opt.p, opt.k, nil, opt.many) ct.Foreground(ct.Green, false) fmt.Printf("Total wallet generated: %d\n", len(mnemonic.TotalWallet)) ct.ResetColor() chains.CheckRunner(mnemonic.TotalWallet, opt.k) }