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 +}