Add debug entry point for delve
This commit is contained in:
@@ -28,10 +28,10 @@ func TestAccDataUserGroup_multiple_providers(t *testing.T) {
|
||||
PreCheck: func() { preCheck(t) },
|
||||
ProviderFactories: map[string]func() (*schema.Provider, error){
|
||||
"unifi2": func() (*schema.Provider, error) {
|
||||
return New(), nil
|
||||
return New("acctest")(), nil
|
||||
},
|
||||
"unifi3": func() (*schema.Provider, error) {
|
||||
return New(), nil
|
||||
return New("acctest")(), nil
|
||||
},
|
||||
},
|
||||
// TODO: CheckDestroy: ,
|
||||
|
||||
@@ -21,7 +21,8 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
func New() *schema.Provider {
|
||||
func New(version string) func() *schema.Provider {
|
||||
return func() *schema.Provider {
|
||||
p := &schema.Provider{
|
||||
Schema: map[string]*schema.Schema{
|
||||
"username": {
|
||||
@@ -78,11 +79,12 @@ func New() *schema.Provider {
|
||||
"unifi_wlan": resourceWLAN(),
|
||||
},
|
||||
}
|
||||
p.ConfigureFunc = configure(p)
|
||||
p.ConfigureFunc = configure(version, p)
|
||||
return p
|
||||
}
|
||||
}
|
||||
|
||||
func configure(p *schema.Provider) schema.ConfigureFunc {
|
||||
func configure(version string, p *schema.Provider) schema.ConfigureFunc {
|
||||
return func(d *schema.ResourceData) (interface{}, error) {
|
||||
user := d.Get("username").(string)
|
||||
pass := d.Get("password").(string)
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
|
||||
var providerFactories = map[string]func() (*schema.Provider, error){
|
||||
"unifi": func() (*schema.Provider, error) {
|
||||
return New(), nil
|
||||
return New("acctest")(), nil
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
33
main.go
33
main.go
@@ -1,13 +1,40 @@
|
||||
package main // import "github.com/paultyng/terraform-provider-unifi"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"log"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/plugin"
|
||||
|
||||
"github.com/paultyng/terraform-provider-unifi/internal/provider"
|
||||
)
|
||||
|
||||
var (
|
||||
// these will be set by the goreleaser configuration
|
||||
// to appropriate values for the compiled binary
|
||||
version string = "dev"
|
||||
|
||||
// goreleaser can also pass the specific commit if you want
|
||||
// commit string = ""
|
||||
)
|
||||
|
||||
func main() {
|
||||
plugin.Serve(&plugin.ServeOpts{
|
||||
ProviderFunc: provider.New,
|
||||
})
|
||||
var debugMode bool
|
||||
|
||||
flag.BoolVar(&debugMode, "debug", false, "set to true to run the provider with support for debuggers like delve")
|
||||
flag.Parse()
|
||||
|
||||
opts := &plugin.ServeOpts{ProviderFunc: provider.New(version)}
|
||||
|
||||
if debugMode {
|
||||
// TODO: update this string with the full name of your provider as used in your configs
|
||||
err := plugin.Debug(context.Background(), "registry.terraform.io/hashicorp/scaffolding", opts)
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
plugin.Serve(opts)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user