aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-07-16 16:49:30 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-07-16 16:49:30 +0200
commit31f30a6888f5834d6f299836515c6fd61f00d9a9 (patch)
tree03ea5a82a6e507b3516dd498ab17e3abe1ea476f /cmd
parent8e33177a08c0490c39c598688118b5850291d04c (diff)
add auth backend converter
closes #65
Diffstat (limited to 'cmd')
-rw-r--r--cmd/mt-auth-convert/convert.go71
1 files changed, 71 insertions, 0 deletions
diff --git a/cmd/mt-auth-convert/convert.go b/cmd/mt-auth-convert/convert.go
new file mode 100644
index 0000000..588f49b
--- /dev/null
+++ b/cmd/mt-auth-convert/convert.go
@@ -0,0 +1,71 @@
+/*
+mt-auth-convert converts between authentication backends.
+
+Usage:
+
+ mt-auth-convert from to
+
+where from is the format to convert from
+and to is the format to convert to
+*/
+package main
+
+import (
+ "log"
+ "os"
+
+ proxy "github.com/HimbeerserverDE/mt-multiserver-proxy"
+)
+
+func main() {
+ if len(os.Args) != 3 {
+ log.Fatal("usage: mt-auth-convert from to")
+ }
+
+ var inBackend proxy.AuthBackend
+ switch os.Args[1] {
+ case "files":
+ inBackend = proxy.AuthFiles{}
+ case "mtsqlite3":
+ var err error
+ inBackend, err = proxy.NewAuthMTSQLite3()
+ if err != nil {
+ log.Fatal(err)
+ }
+ default:
+ log.Fatal("invalid input auth backend")
+ }
+
+ var outBackend proxy.AuthBackend
+ switch os.Args[2] {
+ case "files":
+ outBackend = proxy.AuthFiles{}
+ case "mtsqlite3":
+ var err error
+ outBackend, err = proxy.NewAuthMTSQLite3()
+ if err != nil {
+ log.Fatal(err)
+ }
+ default:
+ log.Fatal("invalid output auth backend")
+ }
+
+ if err := convert(outBackend, inBackend); err != nil {
+ log.Fatal(err)
+ }
+
+ log.Print("conversion successful")
+}
+
+func convert(dst, src proxy.AuthBackend) error {
+ users, err := src.Export()
+ if err != nil {
+ return err
+ }
+
+ if err := dst.Import(users); err != nil {
+ return err
+ }
+
+ return nil
+}