Files
netris-nestri/packages/maitred/pkg/resource/resource.go
Wanjohi 060718d8b0 feat: Update website, API, and infra (#164)
>Adds `maitred` in charge of handling automated game installs, updates,
and even execution.

>Not only that, we have the hosted stuff here
>- [x] AWS Task on ECS GPUs
>- [ ] Add a service to listen for game starts and stops
(docker-compose.yml)
>- [x] Add a queue for requesting a game to start
>- [x] Fix up the play/watch UI 

>TODO:
>- Add a README
>- Add an SST docs

Edit:

- This adds a new landing page, updates the homepage etc etc
>I forgot what the rest of the updated stuff are 😅
2025-02-11 12:26:35 +03:00

47 lines
906 B
Go

package resource
import (
"encoding/json"
"fmt"
"os"
"reflect"
)
type resource struct {
Api struct {
Url string `json:"url"`
}
Auth struct {
Url string `json:"url"`
}
AuthFingerprintKey struct {
Value string `json:"value"`
}
Party struct {
Endpoint string `json:"endpoint"`
Authorizer string `json:"authorizer"`
}
App struct {
Name string `json:"name"`
Stage string `json:"stage"`
}
}
var Resource resource
func init() {
val := reflect.ValueOf(&Resource).Elem()
for i := 0; i < val.NumField(); i++ {
field := val.Field(i)
typeField := val.Type().Field(i)
envVarName := fmt.Sprintf("SST_RESOURCE_%s", typeField.Name)
envValue, exists := os.LookupEnv(envVarName)
if !exists {
panic(fmt.Sprintf("Environment variable %s is required", envVarName))
}
if err := json.Unmarshal([]byte(envValue), field.Addr().Interface()); err != nil {
panic(err)
}
}
}