|
@@ -20,6 +20,7 @@ import (
|
|
"fmt"
|
|
"fmt"
|
|
"os"
|
|
"os"
|
|
"os/signal"
|
|
"os/signal"
|
|
|
|
+ "strings"
|
|
"sync"
|
|
"sync"
|
|
"syscall"
|
|
"syscall"
|
|
"time"
|
|
"time"
|
|
@@ -38,11 +39,30 @@ import (
|
|
"maunium.net/go/mautrix-whatsapp/types"
|
|
"maunium.net/go/mautrix-whatsapp/types"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+var (
|
|
|
|
+ // These are static
|
|
|
|
+ Name = "mautrix-whatsapp"
|
|
|
|
+ URL = "https://github.com/tulir/mautrix-whatsapp"
|
|
|
|
+ // This is changed when making a release
|
|
|
|
+ Version = "0.1.0+dev"
|
|
|
|
+ // These are filled at build time with the -X linker flag
|
|
|
|
+ Tag = "unknown"
|
|
|
|
+ Commit = "unknown"
|
|
|
|
+ BuildTime = "unknown"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+func init() {
|
|
|
|
+ if len(Tag) > 0 && Tag[0] == 'v' {
|
|
|
|
+ Tag = Tag[1:]
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
var configPath = flag.MakeFull("c", "config", "The path to your config file.", "config.yaml").String()
|
|
var configPath = flag.MakeFull("c", "config", "The path to your config file.", "config.yaml").String()
|
|
|
|
|
|
//var baseConfigPath = flag.MakeFull("b", "base-config", "The path to the example config file.", "example-config.yaml").String()
|
|
//var baseConfigPath = flag.MakeFull("b", "base-config", "The path to the example config file.", "example-config.yaml").String()
|
|
var registrationPath = flag.MakeFull("r", "registration", "The path where to save the appservice registration.", "registration.yaml").String()
|
|
var registrationPath = flag.MakeFull("r", "registration", "The path where to save the appservice registration.", "registration.yaml").String()
|
|
var generateRegistration = flag.MakeFull("g", "generate-registration", "Generate registration and quit.", "false").Bool()
|
|
var generateRegistration = flag.MakeFull("g", "generate-registration", "Generate registration and quit.", "false").Bool()
|
|
|
|
+var version = flag.MakeFull("v", "version", "View bridge version and quit.", "false").Bool()
|
|
var ignoreUnsupportedDatabase = flag.Make().LongKey("ignore-unsupported-database").Usage("Run even if database is too new").Default("false").Bool()
|
|
var ignoreUnsupportedDatabase = flag.Make().LongKey("ignore-unsupported-database").Usage("Run even if database is too new").Default("false").Bool()
|
|
var migrateFrom = flag.Make().LongKey("migrate-db").Usage("Source database type and URI to migrate from.").Bool()
|
|
var migrateFrom = flag.Make().LongKey("migrate-db").Usage("Source database type and URI to migrate from.").Bool()
|
|
var wantHelp, _ = flag.MakeHelpFlag()
|
|
var wantHelp, _ = flag.MakeHelpFlag()
|
|
@@ -347,6 +367,18 @@ func (bridge *Bridge) Main() {
|
|
} else if *migrateFrom {
|
|
} else if *migrateFrom {
|
|
bridge.MigrateDatabase()
|
|
bridge.MigrateDatabase()
|
|
return
|
|
return
|
|
|
|
+ } else if *version {
|
|
|
|
+ if Tag == Version {
|
|
|
|
+ fmt.Printf("%s %s (%s)\n", Name, Tag, BuildTime)
|
|
|
|
+ } else if len(Commit) > 8 {
|
|
|
|
+ if !strings.HasSuffix(Version, "+dev") {
|
|
|
|
+ Version += "+dev"
|
|
|
|
+ }
|
|
|
|
+ fmt.Printf("%s %s.%s (%s)\n", Name, Version, Commit[:8], BuildTime)
|
|
|
|
+ } else {
|
|
|
|
+ fmt.Printf("%s %s+dev.unknown\n", Name, Version)
|
|
|
|
+ }
|
|
|
|
+ return
|
|
}
|
|
}
|
|
|
|
|
|
bridge.Init()
|
|
bridge.Init()
|