summaryrefslogtreecommitdiff
path: root/docs/src/api/go/example.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/api/go/example.md')
-rw-r--r--docs/src/api/go/example.md72
1 files changed, 11 insertions, 61 deletions
diff --git a/docs/src/api/go/example.md b/docs/src/api/go/example.md
index e7b0d36..0ed7d02 100644
--- a/docs/src/api/go/example.md
+++ b/docs/src/api/go/example.md
@@ -1,63 +1,13 @@
-# Example with Comments
-
+# Example with comments
+The following is an example [in the repository](https://github.com/jwijenbergh/eduvpn-common/blob/main/cmd/cli/main.go). It is a command line client with the following flags
+```
+-get-institute string
+ The url of an institute to connect to
+-get-secure string
+ Gets secure internet servers.
+-get-secure-all string
+ Gets certificates for all secure internet servers. It stores them in ./certs. Provide an URL for the home server e.g. nl.eduvpn.org.
+```
```go
-
-// Bring the library into scope with the eduvpn prefix
-import eduvpn "github.com/jwijenbergh/eduvpn-common"
-
-// Callbacks
-
-func stateCallback(state *eduvpn.VPNState, oldState string, newState string, data string) {
-
- // OAuth is started, open the browser with the authorization URL
- if newState == "OAuth_Started" {
- openBrowser(data)
- }
-
- // Multiple profiles are found, we need to send a profile ID back using state.SetProfileID
- if newState == "Ask_Profile" {
- selectAndSendProfile(state, data)
- }
-}
-
-func main() {
- // Create the VPNState
- state := &eduvpn.VPNState{}
-
- // Register the state
- // We use linux so the client ID will be org.eduvpn.app.linux
- // We want to store the config files in configs
- // We wrap the callback with the state argument
- // And enable debugging
- registerErr := state.Register("org.eduvpn.app.linux", "configs", func(old string, new string, data string) {
- stateCallback(state, old, new, data)
- }, true)
-
- if registErr != nil {
- // handle the error of not being able to register
- }
-
- // Cleanup the library at the end
- defer state.Deregister()
-
- // Connect to an example server without forcing TCP
- config, configType, configErr := state.GetConnectConfig("eduvpn.example.com", false)
-
- if configErr != nil {
- // handle the error of not being able to get a config
- }
-
- if configType == "wireguard" {
- // Connect using wireguard with the config
- } else {
- // Connect using OpenVPN with the config
- }
-
- // We are connected
- setConnectErr := state.SetConnected()
-
- if setConnectErr != nil {
- // handle the error of not being able to call set connected
- }
-}
+{{#include ../../../../cmd/cli/main.go}}
```