func (c *Config) handleEnvVars() error {
	if c.CloudinaryURI != nil {
		curi, err := handleQuery(c.CloudinaryURI)
		if err != nil {
			return err
		}
		c.CloudinaryURI = curi
	}
	if len(c.PrependPath) == 0 {
		if len(c.ProdTag) > 0 {
			ptag, err := replaceEnvVars(c.ProdTag)
			if err != nil {
				return err
			}
			c.PrependPath = cloudinary.EnsureTrailingSlash(ptag)
		}
	}
	if c.MongoURI != nil {
		muri, err := handleQuery(c.MongoURI)
		if err != nil {
			return err
		}
		c.MongoURI = muri
	}
	return nil
}
Parses all structure fields values, looks for any
variable defined as ${VARNAME} and substitute it by
calling os.Getenv().

The reflect package is not used here since we cannot
set a private field (not exported) within a struct using
reflection.
package main
import (
	"errors"
	"flag"
	"fmt"
	"net/url"
	"os"
	"strings"
	"github.com/gotsunami/go-cloudinary"
	"github.com/outofpluto/goconfig/config"
)
type Config struct {
	CloudinaryURI *url.URL
	MongoURI *url.URL
	KeepFilesPattern string
	PrependPath string
	ProdTag string
}
var service *cloudinary.Service