38 lines
963 B
Go

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
package config
import (
"bytes"
"encoding/json"
"os"
"github.com/gitpod-io/gitpod/common-go/baseserver"
"golang.org/x/xerrors"
)
type ServiceConfiguration struct {
Server *baseserver.Configuration `json:"server,omitempty"`
IDEConfigPath string `json:"ideConfigPath"`
DockerCfg string `json:"dockerCfg"`
}
func Read(fn string) (*ServiceConfiguration, error) {
ctnt, err := os.ReadFile(fn)
if err != nil {
return nil, xerrors.Errorf("cannot read config file: %w", err)
}
var cfg ServiceConfiguration
dec := json.NewDecoder(bytes.NewReader(ctnt))
dec.DisallowUnknownFields()
err = dec.Decode(&cfg)
if err != nil {
return nil, xerrors.Errorf("cannot parse config file: %w", err)
}
return &cfg, nil
}