github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/fly/commands/logout.go (about)

     1  package commands
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  
     7  	"github.com/pf-qiu/concourse/v6/fly/rc"
     8  )
     9  
    10  type LogoutCommand struct {
    11  	All bool `short:"a" long:"all" description:"Logout of all targets"`
    12  }
    13  
    14  func (command *LogoutCommand) Execute(args []string) error {
    15  
    16  	if Fly.Target != "" && !command.All {
    17  		if err := rc.LogoutTarget(Fly.Target); err != nil {
    18  			return err
    19  		}
    20  
    21  		fmt.Println("logged out of target: " + Fly.Target)
    22  	} else if Fly.Target == "" && command.All {
    23  
    24  		targets, err := rc.LoadTargets()
    25  		if err != nil {
    26  			return err
    27  		}
    28  
    29  		for targetName := range targets {
    30  			if err := rc.LogoutTarget(targetName); err != nil {
    31  				return err
    32  			}
    33  		}
    34  
    35  		fmt.Println("logged out of all targets")
    36  	} else {
    37  		return errors.New("must specify either --target or --all")
    38  	}
    39  
    40  	return nil
    41  }