All Projects → gokultp → Go Envparser

gokultp / Go Envparser

Licence: mit
a go generator based env to go-struct decoder.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Envparser

Faker
Go (Golang) Fake Data Generator for Struct
Stars: ✭ 1,698 (+9888.24%)
Mutual labels:  struct, generator
envy
envy: Deserialize environment variables into type-safe structs
Stars: ✭ 64 (+276.47%)
Mutual labels:  environment-variables, struct
Struct2ts
Generate Typescript classes/interfaces out of Go structs
Stars: ✭ 116 (+582.35%)
Mutual labels:  struct, generator
goverter
Generate type-safe Go converters by simply defining an interface
Stars: ✭ 100 (+488.24%)
Mutual labels:  generator, struct
Toml To Go
Translates TOML into a Go type in your browser instantly
Stars: ✭ 134 (+688.24%)
Mutual labels:  struct, generator
Coolie
Coolie(苦力) helps you to create models (& their constructors) from a JSON file.
Stars: ✭ 508 (+2888.24%)
Mutual labels:  struct, generator
Figma To Flutter
A Dart code generator that converts Figma components to Flutter widgets.
Stars: ✭ 694 (+3982.35%)
Mutual labels:  generator
Recoil
Asynchronous coroutines for PHP 7.
Stars: ✭ 765 (+4400%)
Mutual labels:  generator
Faker
Faker is a pure Elixir library for generating fake data.
Stars: ✭ 673 (+3858.82%)
Mutual labels:  generator
Environs
simplified environment variable parsing
Stars: ✭ 631 (+3611.76%)
Mutual labels:  environment-variables
Laravel Bootstrap Table List
Bootstrap table list generator for Laravel.
Stars: ✭ 16 (-5.88%)
Mutual labels:  generator
Gen
Converts a database into gorm structs and RESTful api
Stars: ✭ 825 (+4752.94%)
Mutual labels:  generator
Iconizer
Create Xcode asset catalogs swift and painless. Generate images for macOS and iOS app icons, launch images and image sets.
Stars: ✭ 751 (+4317.65%)
Mutual labels:  generator
React Styleguide Generator
Easily generate a good-looking styleguide by adding some documentation to your React project.
Stars: ✭ 701 (+4023.53%)
Mutual labels:  generator
Github Changelog Generator
Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
Stars: ✭ 6,631 (+38905.88%)
Mutual labels:  generator
Genie
GENie - Project generator tool
Stars: ✭ 693 (+3976.47%)
Mutual labels:  generator
Numgen
Creates objects that generate number sequences
Stars: ✭ 5 (-70.59%)
Mutual labels:  generator
Structor
Structor - React UI Builder [DEPRECATED]
Stars: ✭ 5,522 (+32382.35%)
Mutual labels:  generator
Easybook
Book publishing as easy as it should be (built with Symfony components)
Stars: ✭ 744 (+4276.47%)
Mutual labels:  generator
Musthave
A Node.js helper module for checking object elements against a list of required elements.
Stars: ✭ 5 (-70.59%)
Mutual labels:  environment-variables

go-envparser

Overview GoDoc Code Climate Go Report Card

go-envparser generates static DecodeEnv functions for structures in Go to decode environment variables, will implement the interface Decoder. The generated functions reduce the reliance upon runtime reflection to do serialization.

Getting Started

Installation

git clone https://github.com/gokultp/go-envparser.git
cd go-envparser
make

#check if the command is working
envparser version

should get an output in the following format

Version : V0.1.0
MinVersion : e3a5a007b94f51f46a64853f308e5a24daf98892
BuildTime : 2019-08-19T00:56:29+0530

Commands

envparser generate -s <structname> -f <filename>

It will generate a file with name <structname>decoder.go (Lowercase) consist of a DecodeEnv function which will be implementing the interface Decoder.

Example

package main

import (
	"fmt"

	"github.com/gokultp/go-envparser/pkg/envdecoder"
)

// Add go generate commands
//go:generate envparser generate -t GoEnv -f $GOFILE
// Dont forget to do goimport on generated files.
//go:generate goimports -w goenvdecoder.go
type GoEnv struct {
	Paths  Path
	GoRoot string `env:"GOROOT"`
}

//go:generate envparser generate -t Path -f $GOFILE
// Dont forget to do goimport on generated files.
//go:generate goimports -w pathdecoder.go
type Path struct {
	System []string `env:"PATH"`
	Go     string   `env:"GOPATH"`
}

func main() {
	env := GoEnv{}
	if err := envdecoder.Decode(&env); err != nil {
		panic(err)
	}
	fmt.Printf("%#v", env)
}

Here in the above file I have used go generate flags, will execute all the needed commands( envparser generate && goimports) in a single go generate command.

So here to generate the code execute

go generate

to run the code execute

go build
./<binary>

License

go-envparser is licensed under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].