shogo/internal/shodan/init.go

45 lines
977 B
Go
Raw Normal View History

2023-08-11 23:23:26 +00:00
package shodan
import (
"fmt"
"os"
2024-05-29 00:42:40 +00:00
"git.supernets.org/perp/shogo/internal/utils"
2023-08-11 23:23:26 +00:00
)
// 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
}