summaryrefslogtreecommitdiff
path: root/linuxstatus/old/unix.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-06 17:51:41 -0600
committerJeff Carr <[email protected]>2024-01-06 17:51:41 -0600
commit0148cec0b28d88f348b88b54ddd9dcbc7c71c823 (patch)
treeae1741261377d339779266beb862d1ef59dc2e36 /linuxstatus/old/unix.go
parent15d9f9769360b1cb8c748de8ee995030ade5eb35 (diff)
purge years of old test code
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'linuxstatus/old/unix.go')
-rw-r--r--linuxstatus/old/unix.go97
1 files changed, 97 insertions, 0 deletions
diff --git a/linuxstatus/old/unix.go b/linuxstatus/old/unix.go
new file mode 100644
index 0000000..b09481a
--- /dev/null
+++ b/linuxstatus/old/unix.go
@@ -0,0 +1,97 @@
+// Various Linux/Unix'y things
+
+// https://wiki.archlinux.org/title/Dynamic_DNS
+
+package main
+
+import (
+ "os"
+ "os/exec"
+ "net"
+ "bytes"
+ "fmt"
+ "strings"
+
+ "go.wit.com/log"
+ "go.wit.com/shell"
+)
+
+func CheckSuperuser() bool {
+ return os.Getuid() == 0
+}
+
+func Escalate() {
+ if os.Getuid() != 0 {
+ cmd := exec.Command("sudo", "./control-panel-dns") // TODO: get the actual path
+ cmd.Stdin = os.Stdin
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+ err := cmd.Run()
+ if err != nil {
+ log.Error(err, "exit in Escalate()")
+ log.Exit(err)
+ }
+ }
+}
+
+// You need permission to do a zone transfer. Otherwise:
+// dig +noall +answer +multiline lab.wit.com any
+// dig +all +multiline fire.lab.wit.com # gives the zonefile header (ttl vals)
+func DumpPublicDNSZone(zone string) {
+ entries, err := net.LookupHost(zone)
+ if err != nil {
+ panic(err)
+ }
+ for _, entry := range entries {
+ log.Println(entry)
+ }
+}
+
+func dumpIPs(host string) {
+ ips, err := net.LookupIP(host)
+ if err != nil {
+ log.Error(err, "dumpIPs() failed")
+ }
+ for _, ip := range ips {
+ log.Println(host, ip)
+ }
+}
+
+/*
+ check if ddclient is installed, working, and/or configured
+ https://github.com/ddclient/ddclient
+*/
+func ddclient() {
+}
+
+/*
+ check if ddupdate is installed, working, and/or configured
+*/
+func ddupdate() {
+}
+
+func run(s string) string {
+ cmdArgs := strings.Fields(s)
+ // Define the command you want to run
+ // cmd := exec.Command(cmdArgs)
+ cmd := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...)
+
+ // Create a buffer to capture the output
+ var out bytes.Buffer
+
+ // Set the output of the command to the buffer
+ cmd.Stdout = &out
+
+ // Run the command
+ err := cmd.Run()
+ if err != nil {
+ fmt.Println("Error running command:", err)
+ return ""
+ }
+
+ tmp := shell.Chomp(out.String())
+ // Output the results
+ log.Info("Command Output:", tmp)
+
+ return tmp
+}