chore: generate countries.tsx from Go code (#15274)

Closes https://github.com/coder/coder/issues/15074

We have a hard-coded list of countries at
https://github.com/coder/coder/blob/main/site/src/pages/SetupPage/countries.tsx.
This means Go code in coder/coder doesn't have an easy way of utilizing
it.

## Solution
Generate countries.tsx from Go code. Generated by `scripts/apitypings`
This commit is contained in:
Joobi S B
2024-11-15 23:35:21 +05:30
committed by GitHub
parent aea6208515
commit 4cb807670d
15 changed files with 1348 additions and 1051 deletions
+11 -6
View File
@@ -495,6 +495,7 @@ gen: \
coderd/rbac/object_gen.go \
codersdk/rbacresources_gen.go \
site/src/api/rbacresourcesGenerated.ts \
site/src/api/countriesGenerated.ts \
docs/admin/integrations/prometheus.md \
docs/reference/cli/index.md \
docs/admin/security/audit-logs.md \
@@ -525,6 +526,7 @@ gen/mark-fresh:
coderd/rbac/object_gen.go \
codersdk/rbacresources_gen.go \
site/src/api/rbacresourcesGenerated.ts \
site/src/api/countriesGenerated.ts \
docs/admin/integrations/prometheus.md \
docs/reference/cli/index.md \
docs/admin/security/audit-logs.md \
@@ -626,17 +628,20 @@ site/src/theme/icons.json: $(wildcard scripts/gensite/*) $(wildcard site/static/
examples/examples.gen.json: scripts/examplegen/main.go examples/examples.go $(shell find ./examples/templates)
go run ./scripts/examplegen/main.go > examples/examples.gen.json
coderd/rbac/object_gen.go: scripts/rbacgen/rbacobject.gotmpl scripts/rbacgen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
go run scripts/rbacgen/main.go rbac > coderd/rbac/object_gen.go
coderd/rbac/object_gen.go: scripts/typegen/rbacobject.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
go run scripts/typegen/main.go rbac object > coderd/rbac/object_gen.go
codersdk/rbacresources_gen.go: scripts/rbacgen/codersdk.gotmpl scripts/rbacgen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
codersdk/rbacresources_gen.go: scripts/typegen/codersdk.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
# Do no overwrite codersdk/rbacresources_gen.go directly, as it would make the file empty, breaking
# the `codersdk` package and any parallel build targets.
go run scripts/rbacgen/main.go codersdk > /tmp/rbacresources_gen.go
go run scripts/typegen/main.go rbac codersdk > /tmp/rbacresources_gen.go
mv /tmp/rbacresources_gen.go codersdk/rbacresources_gen.go
site/src/api/rbacresourcesGenerated.ts: scripts/rbacgen/codersdk.gotmpl scripts/rbacgen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
go run scripts/rbacgen/main.go typescript > "$@"
site/src/api/rbacresourcesGenerated.ts: scripts/typegen/codersdk.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
go run scripts/typegen/main.go rbac typescript > "$@"
site/src/api/countriesGenerated.ts: scripts/typegen/countries.tstmpl scripts/typegen/main.go codersdk/countries.go
go run scripts/typegen/main.go countries > "$@"
docs/admin/integrations/prometheus.md: scripts/metricsdocgen/main.go scripts/metricsdocgen/metrics
go run scripts/metricsdocgen/main.go
+4 -27
View File
@@ -530,36 +530,13 @@ func promptDevelopers(inv *serpent.Invocation) (string, error) {
}
func promptCountry(inv *serpent.Invocation) (string, error) {
countries := []string{
"Afghanistan", "Åland Islands", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda",
"Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados",
"Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia, Plurinational State of", "Bonaire, Sint Eustatius and Saba", "Bosnia and Herzegovina", "Botswana",
"Bouvet Island", "Brazil", "British Indian Ocean Territory", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada",
"Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros",
"Congo", "Congo, the Democratic Republic of the", "Cook Islands", "Costa Rica", "Côte d'Ivoire", "Croatia", "Cuba", "Curaçao", "Cyprus", "Czech Republic",
"Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia",
"Ethiopia", "Falkland Islands (Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", "French Guiana", "French Polynesia", "French Southern Territories", "Gabon",
"Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam",
"Guatemala", "Guernsey", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Heard Island and McDonald Islands", "Holy See (Vatican City State)", "Honduras", "Hong Kong",
"Hungary", "Iceland", "India", "Indonesia", "Iran, Islamic Republic of", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy",
"Jamaica", "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, Democratic People's Republic of", "Korea, Republic of", "Kuwait",
"Kyrgyzstan", "Lao People's Democratic Republic", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
"Macao", "Macedonia, the Former Yugoslav Republic of", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Martinique",
"Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia, Federated States of", "Moldova, Republic of", "Monaco", "Mongolia", "Montenegro", "Montserrat",
"Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Caledonia", "New Zealand", "Nicaragua",
"Niger", "Nigeria", "Niue", "Norfolk Island", "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Palestine, State of",
"Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn", "Poland", "Portugal", "Puerto Rico", "Qatar",
"Réunion", "Romania", "Russian Federation", "Rwanda", "Saint Barthélemy", "Saint Helena, Ascension and Tristan da Cunha", "Saint Kitts and Nevis", "Saint Lucia", "Saint Martin (French part)", "Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore",
"Sint Maarten (Dutch part)", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Sudan", "Spain", "Sri Lanka",
"Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", "Switzerland", "Syrian Arab Republic", "Taiwan, Province of China", "Tajikistan", "Tanzania, United Republic of",
"Thailand", "Timor-Leste", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands",
"Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", "Vanuatu",
"Venezuela, Bolivarian Republic of", "Vietnam", "Virgin Islands, British", "Virgin Islands, U.S.", "Wallis and Futuna", "Western Sahara", "Yemen", "Zambia", "Zimbabwe",
options := make([]string, len(codersdk.Countries))
for i, country := range codersdk.Countries {
options[i] = country.Name
}
selection, err := cliui.Select(inv, cliui.SelectOptions{
Options: countries,
Options: options,
Message: "Select the country:",
HideSearch: false,
})
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
package rbac
import "github.com/coder/coder/v2/coderd/rbac/policy"
+259
View File
@@ -0,0 +1,259 @@
package codersdk
var Countries = []Country{
{Name: "Afghanistan", Flag: "🇦🇫"},
{Name: "Åland Islands", Flag: "🇦🇽"},
{Name: "Albania", Flag: "🇦🇱"},
{Name: "Algeria", Flag: "🇩🇿"},
{Name: "American Samoa", Flag: "🇦🇸"},
{Name: "Andorra", Flag: "🇦🇩"},
{Name: "Angola", Flag: "🇦🇴"},
{Name: "Anguilla", Flag: "🇦🇮"},
{Name: "Antarctica", Flag: "🇦🇶"},
{Name: "Antigua and Barbuda", Flag: "🇦🇬"},
{Name: "Argentina", Flag: "🇦🇷"},
{Name: "Armenia", Flag: "🇦🇲"},
{Name: "Aruba", Flag: "🇦🇼"},
{Name: "Australia", Flag: "🇦🇺"},
{Name: "Austria", Flag: "🇦🇹"},
{Name: "Azerbaijan", Flag: "🇦🇿"},
{Name: "Bahamas", Flag: "🇧🇸"},
{Name: "Bahrain", Flag: "🇧🇭"},
{Name: "Bangladesh", Flag: "🇧🇩"},
{Name: "Barbados", Flag: "🇧🇧"},
{Name: "Belarus", Flag: "🇧🇾"},
{Name: "Belgium", Flag: "🇧🇪"},
{Name: "Belize", Flag: "🇧🇿"},
{Name: "Benin", Flag: "🇧🇯"},
{Name: "Bermuda", Flag: "🇧🇲"},
{Name: "Bhutan", Flag: "🇧🇹"},
{Name: "Bolivia, Plurinational State of", Flag: "🇧🇴"},
{Name: "Bonaire, Sint Eustatius and Saba", Flag: "🇧🇶"},
{Name: "Bosnia and Herzegovina", Flag: "🇧🇦"},
{Name: "Botswana", Flag: "🇧🇼"},
{Name: "Bouvet Island", Flag: "🇧🇻"},
{Name: "Brazil", Flag: "🇧🇷"},
{Name: "British Indian Ocean Territory", Flag: "🇮🇴"},
{Name: "Brunei Darussalam", Flag: "🇧🇳"},
{Name: "Bulgaria", Flag: "🇧🇬"},
{Name: "Burkina Faso", Flag: "🇧🇫"},
{Name: "Burundi", Flag: "🇧🇮"},
{Name: "Cambodia", Flag: "🇰🇭"},
{Name: "Cameroon", Flag: "🇨🇲"},
{Name: "Canada", Flag: "🇨🇦"},
{Name: "Cape Verde", Flag: "🇨🇻"},
{Name: "Cayman Islands", Flag: "🇰🇾"},
{Name: "Central African Republic", Flag: "🇨🇫"},
{Name: "Chad", Flag: "🇹🇩"},
{Name: "Chile", Flag: "🇨🇱"},
{Name: "China", Flag: "🇨🇳"},
{Name: "Christmas Island", Flag: "🇨🇽"},
{Name: "Cocos (Keeling) Islands", Flag: "🇨🇨"},
{Name: "Colombia", Flag: "🇨🇴"},
{Name: "Comoros", Flag: "🇰🇲"},
{Name: "Congo", Flag: "🇨🇬"},
{Name: "Congo, the Democratic Republic of the", Flag: "🇨🇩"},
{Name: "Cook Islands", Flag: "🇨🇰"},
{Name: "Costa Rica", Flag: "🇨🇷"},
{Name: "Côte d'Ivoire", Flag: "🇨🇮"},
{Name: "Croatia", Flag: "🇭🇷"},
{Name: "Cuba", Flag: "🇨🇺"},
{Name: "Curaçao", Flag: "🇨🇼"},
{Name: "Cyprus", Flag: "🇨🇾"},
{Name: "Czech Republic", Flag: "🇨🇿"},
{Name: "Denmark", Flag: "🇩🇰"},
{Name: "Djibouti", Flag: "🇩🇯"},
{Name: "Dominica", Flag: "🇩🇲"},
{Name: "Dominican Republic", Flag: "🇩🇴"},
{Name: "Ecuador", Flag: "🇪🇨"},
{Name: "Egypt", Flag: "🇪🇬"},
{Name: "El Salvador", Flag: "🇸🇻"},
{Name: "Equatorial Guinea", Flag: "🇬🇶"},
{Name: "Eritrea", Flag: "🇪🇷"},
{Name: "Estonia", Flag: "🇪🇪"},
{Name: "Ethiopia", Flag: "🇪🇹"},
{Name: "Falkland Islands (Malvinas)", Flag: "🇫🇰"},
{Name: "Faroe Islands", Flag: "🇫🇴"},
{Name: "Fiji", Flag: "🇫🇯"},
{Name: "Finland", Flag: "🇫🇮"},
{Name: "France", Flag: "🇫🇷"},
{Name: "French Guiana", Flag: "🇬🇫"},
{Name: "French Polynesia", Flag: "🇵🇫"},
{Name: "French Southern Territories", Flag: "🇹🇫"},
{Name: "Gabon", Flag: "🇬🇦"},
{Name: "Gambia", Flag: "🇬🇲"},
{Name: "Georgia", Flag: "🇬🇪"},
{Name: "Germany", Flag: "🇩🇪"},
{Name: "Ghana", Flag: "🇬🇭"},
{Name: "Gibraltar", Flag: "🇬🇮"},
{Name: "Greece", Flag: "🇬🇷"},
{Name: "Greenland", Flag: "🇬🇱"},
{Name: "Grenada", Flag: "🇬🇩"},
{Name: "Guadeloupe", Flag: "🇬🇵"},
{Name: "Guam", Flag: "🇬🇺"},
{Name: "Guatemala", Flag: "🇬🇹"},
{Name: "Guernsey", Flag: "🇬🇬"},
{Name: "Guinea", Flag: "🇬🇳"},
{Name: "Guinea-Bissau", Flag: "🇬🇼"},
{Name: "Guyana", Flag: "🇬🇾"},
{Name: "Haiti", Flag: "🇭🇹"},
{Name: "Heard Island and McDonald Islands", Flag: "🇭🇲"},
{Name: "Holy See (Vatican City State)", Flag: "🇻🇦"},
{Name: "Honduras", Flag: "🇭🇳"},
{Name: "Hong Kong", Flag: "🇭🇰"},
{Name: "Hungary", Flag: "🇭🇺"},
{Name: "Iceland", Flag: "🇮🇸"},
{Name: "India", Flag: "🇮🇳"},
{Name: "Indonesia", Flag: "🇮🇩"},
{Name: "Iran, Islamic Republic of", Flag: "🇮🇷"},
{Name: "Iraq", Flag: "🇮🇶"},
{Name: "Ireland", Flag: "🇮🇪"},
{Name: "Isle of Man", Flag: "🇮🇲"},
{Name: "Israel", Flag: "🇮🇱"},
{Name: "Italy", Flag: "🇮🇹"},
{Name: "Jamaica", Flag: "🇯🇲"},
{Name: "Japan", Flag: "🇯🇵"},
{Name: "Jersey", Flag: "🇯🇪"},
{Name: "Jordan", Flag: "🇯🇴"},
{Name: "Kazakhstan", Flag: "🇰🇿"},
{Name: "Kenya", Flag: "🇰🇪"},
{Name: "Kiribati", Flag: "🇰🇮"},
{Name: "Korea, Democratic People's Republic of", Flag: "🇰🇵"},
{Name: "Korea, Republic of", Flag: "🇰🇷"},
{Name: "Kuwait", Flag: "🇰🇼"},
{Name: "Kyrgyzstan", Flag: "🇰🇬"},
{Name: "Lao People's Democratic Republic", Flag: "🇱🇦"},
{Name: "Latvia", Flag: "🇱🇻"},
{Name: "Lebanon", Flag: "🇱🇧"},
{Name: "Lesotho", Flag: "🇱🇸"},
{Name: "Liberia", Flag: "🇱🇷"},
{Name: "Libya", Flag: "🇱🇾"},
{Name: "Liechtenstein", Flag: "🇱🇮"},
{Name: "Lithuania", Flag: "🇱🇹"},
{Name: "Luxembourg", Flag: "🇱🇺"},
{Name: "Macao", Flag: "🇲🇴"},
{Name: "Macedonia, the Former Yugoslav Republic of", Flag: "🇲🇰"},
{Name: "Madagascar", Flag: "🇲🇬"},
{Name: "Malawi", Flag: "🇲🇼"},
{Name: "Malaysia", Flag: "🇲🇾"},
{Name: "Maldives", Flag: "🇲🇻"},
{Name: "Mali", Flag: "🇲🇱"},
{Name: "Malta", Flag: "🇲🇹"},
{Name: "Marshall Islands", Flag: "🇲🇭"},
{Name: "Martinique", Flag: "🇲🇶"},
{Name: "Mauritania", Flag: "🇲🇷"},
{Name: "Mauritius", Flag: "🇲🇺"},
{Name: "Mayotte", Flag: "🇾🇹"},
{Name: "Mexico", Flag: "🇲🇽"},
{Name: "Micronesia, Federated States of", Flag: "🇫🇲"},
{Name: "Moldova, Republic of", Flag: "🇲🇩"},
{Name: "Monaco", Flag: "🇲🇨"},
{Name: "Mongolia", Flag: "🇲🇳"},
{Name: "Montenegro", Flag: "🇲🇪"},
{Name: "Montserrat", Flag: "🇲🇸"},
{Name: "Morocco", Flag: "🇲🇦"},
{Name: "Mozambique", Flag: "🇲🇿"},
{Name: "Myanmar", Flag: "🇲🇲"},
{Name: "Namibia", Flag: "🇳🇦"},
{Name: "Nauru", Flag: "🇳🇷"},
{Name: "Nepal", Flag: "🇳🇵"},
{Name: "Netherlands", Flag: "🇳🇱"},
{Name: "New Caledonia", Flag: "🇳🇨"},
{Name: "New Zealand", Flag: "🇳🇿"},
{Name: "Nicaragua", Flag: "🇳🇮"},
{Name: "Niger", Flag: "🇳🇪"},
{Name: "Nigeria", Flag: "🇳🇬"},
{Name: "Niue", Flag: "🇳🇺"},
{Name: "Norfolk Island", Flag: "🇳🇫"},
{Name: "Northern Mariana Islands", Flag: "🇲🇵"},
{Name: "Norway", Flag: "🇳🇴"},
{Name: "Oman", Flag: "🇴🇲"},
{Name: "Pakistan", Flag: "🇵🇰"},
{Name: "Palau", Flag: "🇵🇼"},
{Name: "Palestine, State of", Flag: "🇵🇸"},
{Name: "Panama", Flag: "🇵🇦"},
{Name: "Papua New Guinea", Flag: "🇵🇬"},
{Name: "Paraguay", Flag: "🇵🇾"},
{Name: "Peru", Flag: "🇵🇪"},
{Name: "Philippines", Flag: "🇵🇭"},
{Name: "Pitcairn", Flag: "🇵🇳"},
{Name: "Poland", Flag: "🇵🇱"},
{Name: "Portugal", Flag: "🇵🇹"},
{Name: "Puerto Rico", Flag: "🇵🇷"},
{Name: "Qatar", Flag: "🇶🇦"},
{Name: "Réunion", Flag: "🇷🇪"},
{Name: "Romania", Flag: "🇷🇴"},
{Name: "Russian Federation", Flag: "🇷🇺"},
{Name: "Rwanda", Flag: "🇷🇼"},
{Name: "Saint Barthélemy", Flag: "🇧🇱"},
{Name: "Saint Helena, Ascension and Tristan da Cunha", Flag: "🇸🇭"},
{Name: "Saint Kitts and Nevis", Flag: "🇰🇳"},
{Name: "Saint Lucia", Flag: "🇱🇨"},
{Name: "Saint Martin (French part)", Flag: "🇲🇫"},
{Name: "Saint Pierre and Miquelon", Flag: "🇵🇲"},
{Name: "Saint Vincent and the Grenadines", Flag: "🇻🇨"},
{Name: "Samoa", Flag: "🇼🇸"},
{Name: "San Marino", Flag: "🇸🇲"},
{Name: "Sao Tome and Principe", Flag: "🇸🇹"},
{Name: "Saudi Arabia", Flag: "🇸🇦"},
{Name: "Senegal", Flag: "🇸🇳"},
{Name: "Serbia", Flag: "🇷🇸"},
{Name: "Seychelles", Flag: "🇸🇨"},
{Name: "Sierra Leone", Flag: "🇸🇱"},
{Name: "Singapore", Flag: "🇸🇬"},
{Name: "Sint Maarten (Dutch part)", Flag: "🇸🇽"},
{Name: "Slovakia", Flag: "🇸🇰"},
{Name: "Slovenia", Flag: "🇸🇮"},
{Name: "Solomon Islands", Flag: "🇸🇧"},
{Name: "Somalia", Flag: "🇸🇴"},
{Name: "South Africa", Flag: "🇿🇦"},
{Name: "South Georgia and the South Sandwich Islands", Flag: "🇬🇸"},
{Name: "South Sudan", Flag: "🇸🇸"},
{Name: "Spain", Flag: "🇪🇸"},
{Name: "Sri Lanka", Flag: "🇱🇰"},
{Name: "Sudan", Flag: "🇸🇩"},
{Name: "Suriname", Flag: "🇸🇷"},
{Name: "Svalbard and Jan Mayen", Flag: "🇸🇯"},
{Name: "Swaziland", Flag: "🇸🇿"},
{Name: "Sweden", Flag: "🇸🇪"},
{Name: "Switzerland", Flag: "🇨🇭"},
{Name: "Syrian Arab Republic", Flag: "🇸🇾"},
{Name: "Taiwan, Province of China", Flag: "🇹🇼"},
{Name: "Tajikistan", Flag: "🇹🇯"},
{Name: "Tanzania, United Republic of", Flag: "🇹🇿"},
{Name: "Thailand", Flag: "🇹🇭"},
{Name: "Timor-Leste", Flag: "🇹🇱"},
{Name: "Togo", Flag: "🇹🇬"},
{Name: "Tokelau", Flag: "🇹🇰"},
{Name: "Tonga", Flag: "🇹🇴"},
{Name: "Trinidad and Tobago", Flag: "🇹🇹"},
{Name: "Tunisia", Flag: "🇹🇳"},
{Name: "Turkey", Flag: "🇹🇷"},
{Name: "Turkmenistan", Flag: "🇹🇲"},
{Name: "Turks and Caicos Islands", Flag: "🇹🇨"},
{Name: "Tuvalu", Flag: "🇹🇻"},
{Name: "Uganda", Flag: "🇺🇬"},
{Name: "Ukraine", Flag: "🇺🇦"},
{Name: "United Arab Emirates", Flag: "🇦🇪"},
{Name: "United Kingdom", Flag: "🇬🇧"},
{Name: "United States", Flag: "🇺🇸"},
{Name: "United States Minor Outlying Islands", Flag: "🇺🇲"},
{Name: "Uruguay", Flag: "🇺🇾"},
{Name: "Uzbekistan", Flag: "🇺🇿"},
{Name: "Vanuatu", Flag: "🇻🇺"},
{Name: "Venezuela, Bolivarian Republic of", Flag: "🇻🇪"},
{Name: "Vietnam", Flag: "🇻🇳"},
{Name: "Virgin Islands, British", Flag: "🇻🇬"},
{Name: "Virgin Islands, U.S.", Flag: "🇻🇮"},
{Name: "Wallis and Futuna", Flag: "🇼🇫"},
{Name: "Western Sahara", Flag: "🇪🇭"},
{Name: "Yemen", Flag: "🇾🇪"},
{Name: "Zambia", Flag: "🇿🇲"},
{Name: "Zimbabwe", Flag: "🇿🇼"},
}
// @typescript-ignore Country
type Country struct {
Name string `json:"name"`
Flag string `json:"flag"`
}
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
package codersdk
type RBACResource string
+1
View File
@@ -57,6 +57,7 @@ func main() {
}
_, _ = fmt.Print("// Code generated by 'make site/src/api/typesGenerated.ts'. DO NOT EDIT.\n\n")
for _, baseDir := range baseDirs {
_, _ = fmt.Printf("// The code below is generated from %s.\n\n", strings.TrimPrefix(baseDir, "./"))
output, err := Generate(baseDir, external...)
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
package codersdk
type RBACResource string
+11
View File
@@ -0,0 +1,11 @@
// Code generated by typegen/main.go. DO NOT EDIT.
// Countries represents all supported countries with their flags
export const countries = [
{{- range $country := . }}
{
name: "{{ $country.Name }}",
flag: "{{ $country.Flag }}",
},
{{- end }}
];
@@ -19,6 +19,7 @@ import (
"golang.org/x/xerrors"
"github.com/coder/coder/v2/coderd/rbac/policy"
"github.com/coder/coder/v2/codersdk"
)
//go:embed rbacobject.gotmpl
@@ -30,12 +31,17 @@ var codersdkTemplate string
//go:embed typescript.tstmpl
var typescriptTemplate string
//go:embed countries.tstmpl
var countriesTemplate string
func usage() {
_, _ = fmt.Println("Usage: rbacgen <codersdk|rbac>")
_, _ = fmt.Println("Must choose a template target.")
_, _ = fmt.Println("Usage: typegen <type> [template]")
_, _ = fmt.Println("Types:")
_, _ = fmt.Println(" rbac <object|codersdk|typescript> - Generate RBAC related files")
_, _ = fmt.Println(" countries - Generate countries TypeScript")
}
// main will generate a file that lists all rbac objects.
// main will generate a file based on the type and template specified.
// This is to provide an "AllResources" function that is always
// in sync.
func main() {
@@ -46,15 +52,43 @@ func main() {
os.Exit(1)
}
formatSource := format.Source
var (
out []byte
err error
)
// It did not make sense to have 2 different generators that do essentially
// the same thing, but different format for the BE and the sdk.
// So the argument switches the go template to use.
var source string
switch strings.ToLower(flag.Args()[0]) {
case "rbac":
if len(flag.Args()) < 2 {
usage()
os.Exit(1)
}
out, err = generateRBAC(flag.Args()[1])
case "countries":
out, err = generateCountries()
default:
_, _ = fmt.Fprintf(os.Stderr, "%q is not a valid type\n", flag.Args()[0])
usage()
os.Exit(2)
}
if err != nil {
log.Fatalf("Generate source: %s", err.Error())
}
_, _ = fmt.Fprint(os.Stdout, string(out))
}
func generateRBAC(tmpl string) ([]byte, error) {
formatSource := format.Source
var source string
switch strings.ToLower(tmpl) {
case "codersdk":
source = codersdkTemplate
case "rbac":
case "object":
source = rbacObjectTemplate
case "typescript":
source = typescriptTemplate
@@ -63,22 +97,29 @@ func main() {
return src, nil
}
default:
_, _ = fmt.Fprintf(os.Stderr, "%q is not a valid template target\n", flag.Args()[0])
usage()
os.Exit(2)
return nil, xerrors.Errorf("%q is not a valid RBAC template target", tmpl)
}
out, err := generateRbacObjects(source)
if err != nil {
log.Fatalf("Generate source: %s", err.Error())
return nil, err
}
return formatSource(out)
}
formatted, err := formatSource(out)
func generateCountries() ([]byte, error) {
tmpl, err := template.New("countries.tstmpl").Parse(countriesTemplate)
if err != nil {
log.Fatalf("Format template: %s", err.Error())
return nil, xerrors.Errorf("parse template: %w", err)
}
_, _ = fmt.Fprint(os.Stdout, string(formatted))
var out bytes.Buffer
err = tmpl.Execute(&out, codersdk.Countries)
if err != nil {
return nil, xerrors.Errorf("execute template: %w", err)
}
return out.Bytes(), nil
}
func pascalCaseName[T ~string](name T) string {
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
package rbac
import "github.com/coder/coder/v2/coderd/rbac/policy"
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
import type { RBACAction, RBACResource } from "./typesGenerated";
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by rbacgen/main.go. DO NOT EDIT.
// Code generated by typegen/main.go. DO NOT EDIT.
import type { RBACAction, RBACResource } from "./typesGenerated";
+1 -1
View File
@@ -5,6 +5,7 @@ import Checkbox from "@mui/material/Checkbox";
import Link from "@mui/material/Link";
import MenuItem from "@mui/material/MenuItem";
import TextField from "@mui/material/TextField";
import { countries } from "api/countriesGenerated";
import type * as TypesGen from "api/typesGenerated";
import { isAxiosError } from "axios";
import { Alert, AlertDetail } from "components/Alert/Alert";
@@ -23,7 +24,6 @@ import {
onChangeTrimmed,
} from "utils/formUtils";
import * as Yup from "yup";
import { countries } from "./countries";
export const Language = {
emailLabel: "Email",
-998
View File
@@ -1,998 +0,0 @@
export const countries = [
{
name: "Afghanistan",
flag: "🇦🇫",
},
{
name: "Åland Islands",
flag: "🇦🇽",
},
{
name: "Albania",
flag: "🇦🇱",
},
{
name: "Algeria",
flag: "🇩🇿",
},
{
name: "American Samoa",
flag: "🇦🇸",
},
{
name: "Andorra",
flag: "🇦🇩",
},
{
name: "Angola",
flag: "🇦🇴",
},
{
name: "Anguilla",
flag: "🇦🇮",
},
{
name: "Antarctica",
flag: "🇦🇶",
},
{
name: "Antigua and Barbuda",
flag: "🇦🇬",
},
{
name: "Argentina",
flag: "🇦🇷",
},
{
name: "Armenia",
flag: "🇦🇲",
},
{
name: "Aruba",
flag: "🇦🇼",
},
{
name: "Australia",
flag: "🇦🇺",
},
{
name: "Austria",
flag: "🇦🇹",
},
{
name: "Azerbaijan",
flag: "🇦🇿",
},
{
name: "Bahamas",
flag: "🇧🇸",
},
{
name: "Bahrain",
flag: "🇧🇭",
},
{
name: "Bangladesh",
flag: "🇧🇩",
},
{
name: "Barbados",
flag: "🇧🇧",
},
{
name: "Belarus",
flag: "🇧🇾",
},
{
name: "Belgium",
flag: "🇧🇪",
},
{
name: "Belize",
flag: "🇧🇿",
},
{
name: "Benin",
flag: "🇧🇯",
},
{
name: "Bermuda",
flag: "🇧🇲",
},
{
name: "Bhutan",
flag: "🇧🇹",
},
{
name: "Bolivia, Plurinational State of",
flag: "🇧🇴",
},
{
name: "Bonaire, Sint Eustatius and Saba",
flag: "🇧🇶",
},
{
name: "Bosnia and Herzegovina",
flag: "🇧🇦",
},
{
name: "Botswana",
flag: "🇧🇼",
},
{
name: "Bouvet Island",
flag: "🇧🇻",
},
{
name: "Brazil",
flag: "🇧🇷",
},
{
name: "British Indian Ocean Territory",
flag: "🇮🇴",
},
{
name: "Brunei Darussalam",
flag: "🇧🇳",
},
{
name: "Bulgaria",
flag: "🇧🇬",
},
{
name: "Burkina Faso",
flag: "🇧🇫",
},
{
name: "Burundi",
flag: "🇧🇮",
},
{
name: "Cambodia",
flag: "🇰🇭",
},
{
name: "Cameroon",
flag: "🇨🇲",
},
{
name: "Canada",
flag: "🇨🇦",
},
{
name: "Cape Verde",
flag: "🇨🇻",
},
{
name: "Cayman Islands",
flag: "🇰🇾",
},
{
name: "Central African Republic",
flag: "🇨🇫",
},
{
name: "Chad",
flag: "🇹🇩",
},
{
name: "Chile",
flag: "🇨🇱",
},
{
name: "China",
flag: "🇨🇳",
},
{
name: "Christmas Island",
flag: "🇨🇽",
},
{
name: "Cocos (Keeling) Islands",
flag: "🇨🇨",
},
{
name: "Colombia",
flag: "🇨🇴",
},
{
name: "Comoros",
flag: "🇰🇲",
},
{
name: "Congo",
flag: "🇨🇬",
},
{
name: "Congo, the Democratic Republic of the",
flag: "🇨🇩",
},
{
name: "Cook Islands",
flag: "🇨🇰",
},
{
name: "Costa Rica",
flag: "🇨🇷",
},
{
name: "Côte d'Ivoire",
flag: "🇨🇮",
},
{
name: "Croatia",
flag: "🇭🇷",
},
{
name: "Cuba",
flag: "🇨🇺",
},
{
name: "Curaçao",
flag: "🇨🇼",
},
{
name: "Cyprus",
flag: "🇨🇾",
},
{
name: "Czech Republic",
flag: "🇨🇿",
},
{
name: "Denmark",
flag: "🇩🇰",
},
{
name: "Djibouti",
flag: "🇩🇯",
},
{
name: "Dominica",
flag: "🇩🇲",
},
{
name: "Dominican Republic",
flag: "🇩🇴",
},
{
name: "Ecuador",
flag: "🇪🇨",
},
{
name: "Egypt",
flag: "🇪🇬",
},
{
name: "El Salvador",
flag: "🇸🇻",
},
{
name: "Equatorial Guinea",
flag: "🇬🇶",
},
{
name: "Eritrea",
flag: "🇪🇷",
},
{
name: "Estonia",
flag: "🇪🇪",
},
{
name: "Ethiopia",
flag: "🇪🇹",
},
{
name: "Falkland Islands (Malvinas)",
flag: "🇫🇰",
},
{
name: "Faroe Islands",
flag: "🇫🇴",
},
{
name: "Fiji",
flag: "🇫🇯",
},
{
name: "Finland",
flag: "🇫🇮",
},
{
name: "France",
flag: "🇫🇷",
},
{
name: "French Guiana",
flag: "🇬🇫",
},
{
name: "French Polynesia",
flag: "🇵🇫",
},
{
name: "French Southern Territories",
flag: "🇹🇫",
},
{
name: "Gabon",
flag: "🇬🇦",
},
{
name: "Gambia",
flag: "🇬🇲",
},
{
name: "Georgia",
flag: "🇬🇪",
},
{
name: "Germany",
flag: "🇩🇪",
},
{
name: "Ghana",
flag: "🇬🇭",
},
{
name: "Gibraltar",
flag: "🇬🇮",
},
{
name: "Greece",
flag: "🇬🇷",
},
{
name: "Greenland",
flag: "🇬🇱",
},
{
name: "Grenada",
flag: "🇬🇩",
},
{
name: "Guadeloupe",
flag: "🇬🇵",
},
{
name: "Guam",
flag: "🇬🇺",
},
{
name: "Guatemala",
flag: "🇬🇹",
},
{
name: "Guernsey",
flag: "🇬🇬",
},
{
name: "Guinea",
flag: "🇬🇳",
},
{
name: "Guinea-Bissau",
flag: "🇬🇼",
},
{
name: "Guyana",
flag: "🇬🇾",
},
{
name: "Haiti",
flag: "🇭🇹",
},
{
name: "Heard Island and McDonald Islands",
flag: "🇭🇲",
},
{
name: "Holy See (Vatican City State)",
flag: "🇻🇦",
},
{
name: "Honduras",
flag: "🇭🇳",
},
{
name: "Hong Kong",
flag: "🇭🇰",
},
{
name: "Hungary",
flag: "🇭🇺",
},
{
name: "Iceland",
flag: "🇮🇸",
},
{
name: "India",
flag: "🇮🇳",
},
{
name: "Indonesia",
flag: "🇮🇩",
},
{
name: "Iran, Islamic Republic of",
flag: "🇮🇷",
},
{
name: "Iraq",
flag: "🇮🇶",
},
{
name: "Ireland",
flag: "🇮🇪",
},
{
name: "Isle of Man",
flag: "🇮🇲",
},
{
name: "Israel",
flag: "🇮🇱",
},
{
name: "Italy",
flag: "🇮🇹",
},
{
name: "Jamaica",
flag: "🇯🇲",
},
{
name: "Japan",
flag: "🇯🇵",
},
{
name: "Jersey",
flag: "🇯🇪",
},
{
name: "Jordan",
flag: "🇯🇴",
},
{
name: "Kazakhstan",
flag: "🇰🇿",
},
{
name: "Kenya",
flag: "🇰🇪",
},
{
name: "Kiribati",
flag: "🇰🇮",
},
{
name: "Korea, Democratic People's Republic of",
flag: "🇰🇵",
},
{
name: "Korea, Republic of",
flag: "🇰🇷",
},
{
name: "Kuwait",
flag: "🇰🇼",
},
{
name: "Kyrgyzstan",
flag: "🇰🇬",
},
{
name: "Lao People's Democratic Republic",
flag: "🇱🇦",
},
{
name: "Latvia",
flag: "🇱🇻",
},
{
name: "Lebanon",
flag: "🇱🇧",
},
{
name: "Lesotho",
flag: "🇱🇸",
},
{
name: "Liberia",
flag: "🇱🇷",
},
{
name: "Libya",
flag: "🇱🇾",
},
{
name: "Liechtenstein",
flag: "🇱🇮",
},
{
name: "Lithuania",
flag: "🇱🇹",
},
{
name: "Luxembourg",
flag: "🇱🇺",
},
{
name: "Macao",
flag: "🇲🇴",
},
{
name: "Macedonia, the Former Yugoslav Republic of",
flag: "🇲🇰",
},
{
name: "Madagascar",
flag: "🇲🇬",
},
{
name: "Malawi",
flag: "🇲🇼",
},
{
name: "Malaysia",
flag: "🇲🇾",
},
{
name: "Maldives",
flag: "🇲🇻",
},
{
name: "Mali",
flag: "🇲🇱",
},
{
name: "Malta",
flag: "🇲🇹",
},
{
name: "Marshall Islands",
flag: "🇲🇭",
},
{
name: "Martinique",
flag: "🇲🇶",
},
{
name: "Mauritania",
flag: "🇲🇷",
},
{
name: "Mauritius",
flag: "🇲🇺",
},
{
name: "Mayotte",
flag: "🇾🇹",
},
{
name: "Mexico",
flag: "🇲🇽",
},
{
name: "Micronesia, Federated States of",
flag: "🇫🇲",
},
{
name: "Moldova, Republic of",
flag: "🇲🇩",
},
{
name: "Monaco",
flag: "🇲🇨",
},
{
name: "Mongolia",
flag: "🇲🇳",
},
{
name: "Montenegro",
flag: "🇲🇪",
},
{
name: "Montserrat",
flag: "🇲🇸",
},
{
name: "Morocco",
flag: "🇲🇦",
},
{
name: "Mozambique",
flag: "🇲🇿",
},
{
name: "Myanmar",
flag: "🇲🇲",
},
{
name: "Namibia",
flag: "🇳🇦",
},
{
name: "Nauru",
flag: "🇳🇷",
},
{
name: "Nepal",
flag: "🇳🇵",
},
{
name: "Netherlands",
flag: "🇳🇱",
},
{
name: "New Caledonia",
flag: "🇳🇨",
},
{
name: "New Zealand",
flag: "🇳🇿",
},
{
name: "Nicaragua",
flag: "🇳🇮",
},
{
name: "Niger",
flag: "🇳🇪",
},
{
name: "Nigeria",
flag: "🇳🇬",
},
{
name: "Niue",
flag: "🇳🇺",
},
{
name: "Norfolk Island",
flag: "🇳🇫",
},
{
name: "Northern Mariana Islands",
flag: "🇲🇵",
},
{
name: "Norway",
flag: "🇳🇴",
},
{
name: "Oman",
flag: "🇴🇲",
},
{
name: "Pakistan",
flag: "🇵🇰",
},
{
name: "Palau",
flag: "🇵🇼",
},
{
name: "Palestine, State of",
flag: "🇵🇸",
},
{
name: "Panama",
flag: "🇵🇦",
},
{
name: "Papua New Guinea",
flag: "🇵🇬",
},
{
name: "Paraguay",
flag: "🇵🇾",
},
{
name: "Peru",
flag: "🇵🇪",
},
{
name: "Philippines",
flag: "🇵🇭",
},
{
name: "Pitcairn",
flag: "🇵🇳",
},
{
name: "Poland",
flag: "🇵🇱",
},
{
name: "Portugal",
flag: "🇵🇹",
},
{
name: "Puerto Rico",
flag: "🇵🇷",
},
{
name: "Qatar",
flag: "🇶🇦",
},
{
name: "Réunion",
flag: "🇷🇪",
},
{
name: "Romania",
flag: "🇷🇴",
},
{
name: "Russian Federation",
flag: "🇷🇺",
},
{
name: "Rwanda",
flag: "🇷🇼",
},
{
name: "Saint Barthélemy",
flag: "🇧🇱",
},
{
name: "Saint Helena, Ascension and Tristan da Cunha",
flag: "🇸🇭",
},
{
name: "Saint Kitts and Nevis",
flag: "🇰🇳",
},
{
name: "Saint Lucia",
flag: "🇱🇨",
},
{
name: "Saint Martin (French part)",
flag: "🇲🇫",
},
{
name: "Saint Pierre and Miquelon",
flag: "🇵🇲",
},
{
name: "Saint Vincent and the Grenadines",
flag: "🇻🇨",
},
{
name: "Samoa",
flag: "🇼🇸",
},
{
name: "San Marino",
flag: "🇸🇲",
},
{
name: "Sao Tome and Principe",
flag: "🇸🇹",
},
{
name: "Saudi Arabia",
flag: "🇸🇦",
},
{
name: "Senegal",
flag: "🇸🇳",
},
{
name: "Serbia",
flag: "🇷🇸",
},
{
name: "Seychelles",
flag: "🇸🇨",
},
{
name: "Sierra Leone",
flag: "🇸🇱",
},
{
name: "Singapore",
flag: "🇸🇬",
},
{
name: "Sint Maarten (Dutch part)",
flag: "🇸🇽",
},
{
name: "Slovakia",
flag: "🇸🇰",
},
{
name: "Slovenia",
flag: "🇸🇮",
},
{
name: "Solomon Islands",
flag: "🇸🇧",
},
{
name: "Somalia",
flag: "🇸🇴",
},
{
name: "South Africa",
flag: "🇿🇦",
},
{
name: "South Georgia and the South Sandwich Islands",
flag: "🇬🇸",
},
{
name: "South Sudan",
flag: "🇸🇸",
},
{
name: "Spain",
flag: "🇪🇸",
},
{
name: "Sri Lanka",
flag: "🇱🇰",
},
{
name: "Sudan",
flag: "🇸🇩",
},
{
name: "Suriname",
flag: "🇸🇷",
},
{
name: "Svalbard and Jan Mayen",
flag: "🇸🇯",
},
{
name: "Swaziland",
flag: "🇸🇿",
},
{
name: "Sweden",
flag: "🇸🇪",
},
{
name: "Switzerland",
flag: "🇨🇭",
},
{
name: "Syrian Arab Republic",
flag: "🇸🇾",
},
{
name: "Taiwan, Province of China",
flag: "🇹🇼",
},
{
name: "Tajikistan",
flag: "🇹🇯",
},
{
name: "Tanzania, United Republic of",
flag: "🇹🇿",
},
{
name: "Thailand",
flag: "🇹🇭",
},
{
name: "Timor-Leste",
flag: "🇹🇱",
},
{
name: "Togo",
flag: "🇹🇬",
},
{
name: "Tokelau",
flag: "🇹🇰",
},
{
name: "Tonga",
flag: "🇹🇴",
},
{
name: "Trinidad and Tobago",
flag: "🇹🇹",
},
{
name: "Tunisia",
flag: "🇹🇳",
},
{
name: "Turkey",
flag: "🇹🇷",
},
{
name: "Turkmenistan",
flag: "🇹🇲",
},
{
name: "Turks and Caicos Islands",
flag: "🇹🇨",
},
{
name: "Tuvalu",
flag: "🇹🇻",
},
{
name: "Uganda",
flag: "🇺🇬",
},
{
name: "Ukraine",
flag: "🇺🇦",
},
{
name: "United Arab Emirates",
flag: "🇦🇪",
},
{
name: "United Kingdom",
flag: "🇬🇧",
},
{
name: "United States",
flag: "🇺🇸",
},
{
name: "United States Minor Outlying Islands",
flag: "🇺🇲",
},
{
name: "Uruguay",
flag: "🇺🇾",
},
{
name: "Uzbekistan",
flag: "🇺🇿",
},
{
name: "Vanuatu",
flag: "🇻🇺",
},
{
name: "Venezuela, Bolivarian Republic of",
flag: "🇻🇪",
},
{
name: "Vietnam",
flag: "🇻🇳",
},
{
name: "Virgin Islands, British",
flag: "🇻🇬",
},
{
name: "Virgin Islands, U.S.",
flag: "🇻🇮",
},
{
name: "Wallis and Futuna",
flag: "🇼🇫",
},
{
name: "Western Sahara",
flag: "🇪🇭",
},
{
name: "Yemen",
flag: "🇾🇪",
},
{
name: "Zambia",
flag: "🇿🇲",
},
{
name: "Zimbabwe",
flag: "🇿🇼",
},
];