func configurationVersionRun()

in cobra/controller/configurationVersion.go [89:156]


func configurationVersionRun(cmd *cobra.Command, args []string) error {

	token := dao.GetTeamToken(profile)
	client := aid.GetTFEClient(token)

	fArg := args[0]
	switch fArg {
	case "list":
		workspaceID, err := cmd.Flags().GetString("workspace-id")
		if err != nil {
			return fmt.Errorf("unable to get flag workspace-id\n%v", err)
		}

		list, err := configurationVersionList(client, workspaceID, tfe.ConfigurationVersionListOptions{})
		if err == nil {
			aid.PrintConfigurationVersionList(list)
		} else {
			return fmt.Errorf("no configurationVersion was found")
		}

	case "create":
		workspaceID, err := cmd.Flags().GetString("workspace-id")
		if err != nil {
			return fmt.Errorf("unable to get flag workspace-id\n%v", err)
		}

		options := aid.GetConfigurationVersionCreateOptions(cmd)
		cv, err := configurationVersionCreate(client, workspaceID, options)

		if err == nil && cv.ID != "" {
			fmt.Println(aid.ToJSON(cv))
		} else {
			return fmt.Errorf("unable to create configuration version\n%v", err)
		}
	case "read":
		id, err := cmd.Flags().GetString("id")
		if err != nil {
			return fmt.Errorf("unable to get flag id\n%v", err)
		}

		cv, err := configurationVersionRead(client, id)
		if err == nil {
			fmt.Println(aid.ToJSON(cv))
		} else {
			return fmt.Errorf("configuration version %s not found\n%v", id, err)
		}

	case "upload":
		url, err := cmd.Flags().GetString("url")
		if err != nil {
			return fmt.Errorf("unable to get flag url\n%v", err)
		}

		path, err := cmd.Flags().GetString("path")
		if err != nil {
			return fmt.Errorf("unable to get flag path\n%v", err)
		}

		err = configurationVersionUpload(client, url, path)
		if err == nil {
			fmt.Println("upload completed successfully")
		} else {
			return fmt.Errorf("unable to upload to configuration version\n%v", err)
		}
	}

	return nil
}