Added output support
This commit is contained in:
parent
77f1046bfc
commit
d69d5eee65
79
v1/internal/file/write.go
Normal file
79
v1/internal/file/write.go
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
package file
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Supported extensions
|
||||||
|
var extensions = [2]string{"txt", "json"}
|
||||||
|
|
||||||
|
// Write to file
|
||||||
|
func Write(path, domain, subdomain string, ips []string) error {
|
||||||
|
// Store extension
|
||||||
|
var extension string
|
||||||
|
|
||||||
|
// Split by extension
|
||||||
|
split := strings.Split(path, ".")
|
||||||
|
|
||||||
|
// No extension found
|
||||||
|
if len(split) != 2 {
|
||||||
|
extension = "txt"
|
||||||
|
} else {
|
||||||
|
extension = split[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the file
|
||||||
|
file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// Check extension
|
||||||
|
switch extension {
|
||||||
|
case "txt":
|
||||||
|
// Store IPs
|
||||||
|
ip := strings.Join(ips, ",")
|
||||||
|
|
||||||
|
// Format line
|
||||||
|
line := fmt.Sprintf("%s:%s:%s\n", domain, subdomain, ip)
|
||||||
|
|
||||||
|
// Write line
|
||||||
|
_, err := file.Write([]byte(line))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
case "json":
|
||||||
|
// Format struct
|
||||||
|
output := struct {
|
||||||
|
Domain string `json:"domain"`
|
||||||
|
Subdomain string `json:"subdomain"`
|
||||||
|
Hosts []string `json:"hosts"`
|
||||||
|
}{
|
||||||
|
Domain: domain,
|
||||||
|
Subdomain: subdomain,
|
||||||
|
Hosts: ips,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Marshal JSON
|
||||||
|
jason, err := json.Marshal(&output)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format line
|
||||||
|
line := string(jason) + "\n"
|
||||||
|
|
||||||
|
// Write line
|
||||||
|
_, err = file.Write([]byte(line))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user