func Execute() {
	if cfg.IsLambda {
		lambda.Start(rootCmd.Execute)
	}
	if err := rootCmd.Execute(); err != nil {
		log.Fatal(err)
	}
}
Execute is the entry point of the command. If we are
running inside of AWS Lambda, we use the Lambda
execution path.
package cmd
import (
	"context"
	"fmt"
	"os"
	"github.com/awslabs/ssosync/internal"
	"github.com/awslabs/ssosync/internal/config"
	"github.com/aws/aws-lambda-go/lambda"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/secretsmanager"
	"github.com/pkg/errors"
	log "github.com/sirupsen/logrus"
	"github.com/spf13/cobra"
	"github.com/spf13/viper"
)
var (
	version = "dev"
	commit  = "none"
	date    = "unknown"
	builtBy = "unknown"
)
var cfg *config.Config
var rootCmd = &cobra.Command{
	Version: "dev",
	Use:     "ssosync",
	Short:   "SSO Sync, making AWS SSO be populated automagically",
	Long: `A command line tool to enable you to synchronise your Google
Apps (Google Workspace) users to AWS Single Sign-on (AWS SSO)
Complete documentation is available at https: 
	RunE: func(cmd *cobra.Command, args []string) error {
		ctx, cancel := context.WithCancel(context.Background())
		defer cancel()
		err := internal.DoSync(ctx, cfg)
		if err != nil {
			return err
		}
		return nil
	},
}