-
Notifications
You must be signed in to change notification settings - Fork 232
/
Copy pathdomains.go
89 lines (76 loc) · 3.29 KB
/
domains.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package cmd
import (
"github.com/spf13/afero"
"github.com/spf13/cobra"
"github.com/supabase/cli/internal/hostnames/activate"
"github.com/supabase/cli/internal/hostnames/create"
"github.com/supabase/cli/internal/hostnames/delete"
"github.com/supabase/cli/internal/hostnames/get"
"github.com/supabase/cli/internal/hostnames/reverify"
"github.com/supabase/cli/internal/utils/flags"
)
var (
customHostnamesCmd = &cobra.Command{
GroupID: groupManagementAPI,
Use: "domains",
Short: "Manage custom domain names for Supabase projects",
Long: `Manage custom domain names for Supabase projects.
Use of custom domains and vanity subdomains is mutually exclusive.
`,
}
rawOutput bool
customHostname string
customHostnamesCreateCmd = &cobra.Command{
Use: "create",
Short: "Create a custom hostname",
Long: `Create a custom hostname for your Supabase project.
Expects your custom hostname to have a CNAME record to your Supabase project's subdomain.`,
RunE: func(cmd *cobra.Command, args []string) error {
return create.Run(cmd.Context(), flags.ProjectRef, customHostname, rawOutput, afero.NewOsFs())
},
}
customHostnamesGetCmd = &cobra.Command{
Use: "get",
Short: "Get the current custom hostname config",
Long: "Retrieve the custom hostname config for your project, as stored in the Supabase platform.",
RunE: func(cmd *cobra.Command, args []string) error {
return get.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
},
}
customHostnamesReverifyCmd = &cobra.Command{
Use: "reverify",
Short: "Re-verify the custom hostname config for your project",
RunE: func(cmd *cobra.Command, args []string) error {
return reverify.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
},
}
customHostnamesActivateCmd = &cobra.Command{
Use: "activate",
Short: "Activate the custom hostname for a project",
Long: `Activates the custom hostname configuration for a project.
This reconfigures your Supabase project to respond to requests on your custom hostname.
After the custom hostname is activated, your project's auth services will no longer function on the Supabase-provisioned subdomain.`,
RunE: func(cmd *cobra.Command, args []string) error {
return activate.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
},
}
customHostnamesDeleteCmd = &cobra.Command{
Use: "delete",
Short: "Deletes the custom hostname config for your project",
RunE: func(cmd *cobra.Command, args []string) error {
return delete.Run(cmd.Context(), flags.ProjectRef, afero.NewOsFs())
},
}
)
func init() {
persistentFlags := customHostnamesCmd.PersistentFlags()
persistentFlags.StringVar(&flags.ProjectRef, "project-ref", "", "Project ref of the Supabase project.")
persistentFlags.BoolVar(&rawOutput, "include-raw-output", false, "Include raw output (useful for debugging).")
customHostnamesCreateCmd.Flags().StringVar(&customHostname, "custom-hostname", "", "The custom hostname to use for your Supabase project.")
customHostnamesCmd.AddCommand(customHostnamesGetCmd)
customHostnamesCmd.AddCommand(customHostnamesCreateCmd)
customHostnamesCmd.AddCommand(customHostnamesReverifyCmd)
customHostnamesCmd.AddCommand(customHostnamesActivateCmd)
customHostnamesCmd.AddCommand(customHostnamesDeleteCmd)
rootCmd.AddCommand(customHostnamesCmd)
}