github.com/henvic/wedeploycli@v1.7.6-0.20200319005353-3630f582f284/command/activities/activities.go (about)

     1  package activities
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/henvic/wedeploycli/activities"
     7  	"github.com/henvic/wedeploycli/cmdflagsfromhost"
     8  	"github.com/henvic/wedeploycli/command/internal/we"
     9  	"github.com/spf13/cobra"
    10  )
    11  
    12  // ActivitiesCmd is the command to list activities on a deploymnet.
    13  var ActivitiesCmd = &cobra.Command{
    14  	Use:     "activities",
    15  	Short:   "List activities of a recent deployment",
    16  	Args:    cobra.NoArgs,
    17  	PreRunE: preRun,
    18  	RunE:    activitiesRun,
    19  	Hidden:  true,
    20  }
    21  
    22  var (
    23  	commit   string
    24  	groupUID string
    25  )
    26  
    27  func preRun(cmd *cobra.Command, args []string) error {
    28  	return setupHost.Process(context.Background(), we.Context())
    29  }
    30  
    31  var setupHost = cmdflagsfromhost.SetupHost{
    32  	Pattern: cmdflagsfromhost.ProjectAndRemotePattern,
    33  
    34  	Requires: cmdflagsfromhost.Requires{
    35  		Project: true,
    36  		Auth:    true,
    37  	},
    38  
    39  	PromptMissingProject: true,
    40  }
    41  
    42  func init() {
    43  	setupHost.Init(ActivitiesCmd)
    44  	ActivitiesCmd.Flags().StringVar(&commit, "commit", "", "Filter by deployment hash")
    45  	ActivitiesCmd.Flags().StringVar(&groupUID, "group", "", "Filter by Group UID")
    46  }
    47  
    48  func activitiesRun(cmd *cobra.Command, args []string) (err error) {
    49  	activitiesClient := activities.New(we.Context())
    50  
    51  	var as []activities.Activity
    52  	var f = activities.Filter{
    53  		Commit:   commit,
    54  		GroupUID: groupUID,
    55  	}
    56  
    57  	as, err = activitiesClient.List(context.Background(), setupHost.Project(), f)
    58  
    59  	if err != nil {
    60  		return err
    61  	}
    62  
    63  	activities.PrettyPrintList(as)
    64  	return nil
    65  }