summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf')
-rw-r--r--conf/endpoint.go98
-rw-r--r--conf/main.go21
2 files changed, 119 insertions, 0 deletions
diff --git a/conf/endpoint.go b/conf/endpoint.go
new file mode 100644
index 0000000..1f8fa11
--- /dev/null
+++ b/conf/endpoint.go
@@ -0,0 +1,98 @@
+package main
+
+import (
+ "fmt"
+ "log"
+ db "sanine.net/git/phlox/db"
+)
+
+
+func CreateEndpoint() *Command {
+ return &Command{
+ Flag: "create-endpoint",
+ Usage: "create a new endpoint",
+ Invoke: func() {
+ OpenDb()
+
+ name := ReadLine("Endpoint Name: ")
+ path := ReadLine("Endpoint Path: ")
+ address := ReadLine("Endpoint Address: ")
+ _, err := p.CreateEndpoint(name, path, address)
+ if err != nil { log.Fatal(err) }
+ fmt.Printf("created endpoint %v\n", name)
+ },
+ }
+}
+
+
+func GetEndpoint() db.Endpoint {
+ OpenDb()
+ name := ReadLine("Endpoint Name: ")
+ endpoint, err := p.GetEndpointByName(name)
+ if err != nil { log.Fatal(err) }
+ return endpoint
+}
+
+
+func DeleteEndpoint() *Command {
+ return &Command{
+ Flag: "delete-endpoint",
+ Usage: "delete an existing endpoint",
+ Invoke: func() {
+ endpoint := GetEndpoint()
+ err := p.DeleteEndpoint(endpoint)
+ if err != nil { log.Fatal(err) }
+ fmt.Printf("deleted endpoint %v\n", endpoint.Name)
+ },
+ }
+}
+
+
+func SetPath() *Command {
+ return &Command{
+ Flag: "set-endpoint-path",
+ Usage: "set the path of an existing endpoint",
+ Invoke: func() {
+ endpoint := GetEndpoint()
+ fmt.Printf("Current Path: %v\n", endpoint.Path)
+ path := ReadLine("New Path: ")
+ err := p.SetEndpointPath(endpoint, path)
+ if err != nil { log.Fatal(err) }
+ fmt.Printf("updated path for endpoint %v\n", endpoint.Name)
+ },
+ }
+}
+
+
+func SetAddress() *Command {
+ return &Command{
+ Flag: "set-endpoint-address",
+ Usage: "set the address of an existing endpoint",
+ Invoke: func() {
+ endpoint := GetEndpoint()
+ fmt.Printf("Current Address: %v\n", endpoint.Address)
+ address := ReadLine("New Address: ")
+ err := p.SetEndpointAddress(endpoint, address)
+ if err != nil { log.Fatal(err) }
+ fmt.Printf("updated address for endpoint %v\n", endpoint.Name)
+ },
+ }
+}
+
+
+func ListEndpoints() *Command {
+ return &Command{
+ Flag: "list-endpoints",
+ Usage: "list all endpoints",
+ Invoke: func() {
+ OpenDb()
+ endpoints, err := p.AllEndpoints()
+ if err != nil { log.Fatal(err) }
+ fmt.Println("id\t\tname\t\tpath\t\taddress")
+ fmt.Println("================================================================================")
+ for _, endpoint := range endpoints {
+ fmt.Printf("%v\t\t%v\t\t%v\t\t%v\n", endpoint.Id, endpoint.Name, endpoint.Path, endpoint.Address)
+ }
+ },
+ }
+}
diff --git a/conf/main.go b/conf/main.go
index dcd9737..182d97f 100644
--- a/conf/main.go
+++ b/conf/main.go
@@ -5,6 +5,8 @@ import (
"fmt"
"log"
"flag"
+ "strings"
+ "bufio"
db "sanine.net/git/phlox/db"
)
@@ -39,6 +41,19 @@ func OpenDb() {
}
+func ReadLine(prompt string) string {
+ reader := bufio.NewReader(os.Stdin)
+
+ fmt.Print(prompt)
+ line, err := reader.ReadString('\n')
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ return strings.TrimSpace(line)
+}
+
+
func main() {
p = &db.Phlox{}
@@ -50,6 +65,12 @@ func main() {
4: DeleteUser(),
5: UpdatePassword(),
6: ListUsers(),
+
+ 7: CreateEndpoint(),
+ 8: DeleteEndpoint(),
+ 9: SetPath(),
+ 10: SetAddress(),
+ 11: ListEndpoints(),
}
for val, cmd := range cmds {