/ internal / executor / whoami.go
whoami.go
 1  package executor
 2  
 3  import (
 4  	"fmt"
 5  
 6  	"codeflow.dananglin.me.uk/apollo/enbas/internal/gtsclient"
 7  	"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
 8  	"codeflow.dananglin.me.uk/apollo/enbas/internal/server"
 9  	"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
10  )
11  
12  func (w *WhoamiExecutor) Execute() error {
13  	client, err := server.Connect(w.config.Server, w.configDir)
14  	if err != nil {
15  		return fmt.Errorf("error creating the client for the daemon process: %w", err)
16  	}
17  	defer client.Close()
18  
19  	account, err := getMyAccount(client)
20  	if err != nil {
21  		return fmt.Errorf("error getting your account information: %w", err)
22  	}
23  
24  	var instanceURL string
25  	if err := client.Call("GTSClient.GetInstanceURL", gtsclient.NoRPCArgs{}, &instanceURL); err != nil {
26  		return fmt.Errorf("error getting the instance URL: %w", err)
27  	}
28  
29  	printer.PrintInfo("You are logged in as '" + account.Username + "@" + utilities.GetFQDN(instanceURL) + "'.\n")
30  
31  	return nil
32  }