summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-03-31 11:50:38 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-03-31 11:50:38 +0200
commit0d860b20a8b6b61d937124ee1955074b12c3f8e6 (patch)
tree506c74a1709fcf648d6850eb9486257e70ce1e5a /cli
parent6258542936e54074784cbc1bf910bd0503312d39 (diff)
Initial approach to creating a fsm with states and substates
Diffstat (limited to 'cli')
-rw-r--r--cli/main.go41
1 files changed, 11 insertions, 30 deletions
diff --git a/cli/main.go b/cli/main.go
index ddcb001..942aef2 100644
--- a/cli/main.go
+++ b/cli/main.go
@@ -2,6 +2,7 @@ package main
import (
"flag"
+ "fmt"
"log"
"os/exec"
"strings"
@@ -17,6 +18,10 @@ func openBrowser(urlString string) {
func logState(oldState string, newState string, data string) {
log.Printf("State: %s -> State: %s with data %s\n", oldState, newState, data)
+
+ if newState == "SERVER_OAUTH_STARTED" {
+ openBrowser(data)
+ }
}
func main() {
@@ -35,37 +40,13 @@ func main() {
state := eduvpn.GetVPNState()
- eduvpn.Register(state, "org.eduvpn.app.linux", "configs", logState)
- state.Server = &eduvpn.Server{}
- serverInitializeErr := state.Server.Initialize(urlString)
- if serverInitializeErr != nil {
- log.Fatal(serverInitializeErr)
- }
-
- if state.LoadConfig() != nil {
- authURL, err := state.InitializeOAuth()
- if err != nil {
- log.Fatal(err)
- }
- openBrowser(authURL)
- oauthErr := state.FinishOAuth()
- if oauthErr != nil {
- log.Fatal(oauthErr)
- }
- }
+ state.Register("org.eduvpn.app.linux", "configs", logState)
+ config, configErr := state.Connect(urlString)
- writeErr := state.WriteConfig()
- if writeErr != nil {
- log.Fatal(writeErr)
- }
- wireguardKey, wireguardErr := eduvpn.WireguardGenerateKey()
-
- if wireguardErr != nil {
- log.Fatal(wireguardErr)
- }
- configString, configExpires, configErr := state.APIConnectWireguard(wireguardKey.PublicKey().String())
if configErr != nil {
- log.Fatal(configErr)
+ fmt.Printf("Config error %v", configErr)
+ return
}
- log.Println(eduvpn.WireguardConfigAddKey(configString, wireguardKey))
+
+ print(config)
}