From ec02a3c9d45ca4a5523b5594da3350bb7b08d242 Mon Sep 17 00:00:00 2001 From: perp Date: Sat, 12 Aug 2023 00:23:26 +0100 Subject: [PATCH] :sparkles: Added init command --- internal/shodan/init.go | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 internal/shodan/init.go diff --git a/internal/shodan/init.go b/internal/shodan/init.go new file mode 100644 index 0000000..9a3cc1c --- /dev/null +++ b/internal/shodan/init.go @@ -0,0 +1,44 @@ +package shodan + +import ( + "fmt" + "os" + + "git.tcp.direct/perp/shogo/internal/utils" +) + +// Initalize Shodan +func (s *Shodan) Init() { + // Get home directory + home, err := os.UserHomeDir() + if err != nil { + s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) + return + } + + // Check if directory exists + _, err = os.Stat(home + "/.config/shodan/api_key") + if err != nil { + // Create directory + err := os.MkdirAll(home+"/.config/shodan", 0770) + if err != nil { + s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) + return + } + } + + // Write key to file + err = os.WriteFile(home+"/.config/shodan/api_key", []byte(s.Flags.Args[0]), 0644) + if err != nil { + s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) + return + } + + // Store lines + var lines string + + // Add lines + lines += utils.Title.Sprintf("Shogo initalized\n") + lines += fmt.Sprintf("%s: %s", utils.Green("Key"), utils.Blue(s.Flags.Args[0])) + s.Results <- lines +}