2020-12-09 15:31:34 +00:00
|
|
|
package remote
|
|
|
|
|
|
|
|
import (
|
2020-12-16 12:02:02 +00:00
|
|
|
"github.com/cloudskiff/driftctl/pkg/alerter"
|
2020-12-09 15:31:34 +00:00
|
|
|
"github.com/cloudskiff/driftctl/pkg/remote/aws"
|
2021-02-15 13:24:20 +00:00
|
|
|
"github.com/cloudskiff/driftctl/pkg/remote/github"
|
2021-01-22 17:06:17 +00:00
|
|
|
"github.com/cloudskiff/driftctl/pkg/resource"
|
|
|
|
"github.com/cloudskiff/driftctl/pkg/terraform"
|
2021-02-09 18:43:39 +00:00
|
|
|
"github.com/pkg/errors"
|
2020-12-09 15:31:34 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var supportedRemotes = []string{
|
|
|
|
aws.RemoteAWSTerraform,
|
2021-02-15 13:24:20 +00:00
|
|
|
github.RemoteGithubTerraform,
|
2020-12-09 15:31:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func IsSupported(remote string) bool {
|
|
|
|
for _, r := range supportedRemotes {
|
|
|
|
if r == remote {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2021-01-22 17:06:17 +00:00
|
|
|
func Activate(remote string, alerter *alerter.Alerter, providerLibrary *terraform.ProviderLibrary, supplierLibrary *resource.SupplierLibrary) error {
|
2020-12-09 15:31:34 +00:00
|
|
|
switch remote {
|
|
|
|
case aws.RemoteAWSTerraform:
|
2021-01-22 17:06:17 +00:00
|
|
|
return aws.Init(alerter, providerLibrary, supplierLibrary)
|
2021-02-15 13:24:20 +00:00
|
|
|
case github.RemoteGithubTerraform:
|
|
|
|
return github.Init(alerter, providerLibrary, supplierLibrary)
|
2020-12-09 15:31:34 +00:00
|
|
|
default:
|
2021-02-10 13:37:59 +00:00
|
|
|
return errors.Errorf("unsupported remote '%s'", remote)
|
2020-12-09 15:31:34 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetSupportedRemotes() []string {
|
|
|
|
return supportedRemotes
|
|
|
|
}
|