Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App config handling with JSON/YAML de/encoder and builder #63

Conversation

arcticicestudio
Copy link
Owner

Resolves #60

The `internal/util` package provides application-wide utility functions.
The initial implementations are scoped for filesystem actions like
checking if a file exists at a given path (and is not a directory) as
well as ensuring absolute paths and necenssary write permissions.

Epic GH-33
Depends on GH-58
GH-60
The `pkg/config` package provides the application-wide configuration
struct and constants.
The subpackage `pkg/config/encoder` provides the `Encoder` interface
that is implemented in the  `pkg/config/encoder/json` and
`pkg/config/encoder/yaml` packages to handle the de/encoding of JSON and
YAML data. To process the data from files the `File` struct of the
`pkg/config/source/file` package represents an abstractation to validate
and load data from files on the local filesystem.

To simplify the usage and handling of configurations the
`pkg/config/builder` package provides the `Load` and `Merge` functions
by using the builder design pattern in order to allow to chain both
functions.

References:
  (1)
  (2)

Epic GH-33
Depends on GH-58
Resolves GH-60
@arcticicestudio arcticicestudio merged commit 84cf2a6 into epic/gh-33-the-way-to-go Jun 25, 2019
@arcticicestudio arcticicestudio deleted the feature/gh-60-app-config-and-file-encode-builder branch June 25, 2019 19:59
@arcticicestudio arcticicestudio removed their assignment Jun 25, 2019
arcticicestudio added a commit that referenced this pull request Jun 25, 2019
* Internal filesystem utility functions

The `internal/util` package provides application-wide utility functions.
The initial implementations are scoped for filesystem actions like
checking if a file exists at a given path (and is not a directory) as
well as ensuring absolute paths and necenssary write permissions.

Epic GH-33
Depends on GH-58
GH-60

<--------------------------------------------------------------------->

* App config handling with JSON/YAML de/encoder and builder

The `pkg/config` package provides the application-wide configuration
struct and constants.
The subpackage `pkg/config/encoder` provides the `Encoder` interface
that is implemented in the  `pkg/config/encoder/json` and
`pkg/config/encoder/yaml` packages to handle the de/encoding of JSON and
YAML data. To process the data from files the `File` struct of the
`pkg/config/source/file` package represents an abstractation to validate
and load data from files on the local filesystem.

To simplify the usage and handling of configurations the
`pkg/config/builder` package provides the `Load` and `Merge` functions
by using the builder design pattern in order to allow to chain both
functions.

Epic GH-33
Depends on GH-58
Resolves GH-60
arcticicestudio added a commit that referenced this pull request Jun 26, 2019
* Internal filesystem utility functions

The `internal/util` package provides application-wide utility functions.
The initial implementations are scoped for filesystem actions like
checking if a file exists at a given path (and is not a directory) as
well as ensuring absolute paths and necenssary write permissions.

Epic GH-33
Depends on GH-58
GH-60

<--------------------------------------------------------------------->

* App config handling with JSON/YAML de/encoder and builder

The `pkg/config` package provides the application-wide configuration
struct and constants.
The subpackage `pkg/config/encoder` provides the `Encoder` interface
that is implemented in the  `pkg/config/encoder/json` and
`pkg/config/encoder/yaml` packages to handle the de/encoding of JSON and
YAML data. To process the data from files the `File` struct of the
`pkg/config/source/file` package represents an abstractation to validate
and load data from files on the local filesystem.

To simplify the usage and handling of configurations the
`pkg/config/builder` package provides the `Load` and `Merge` functions
by using the builder design pattern in order to allow to chain both
functions.

Epic GH-33
Depends on GH-58
Resolves GH-60
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants