updated ezconf
This commit is contained in:
@@ -12,20 +12,20 @@ import (
|
||||
|
||||
// PrintEnvVars prints all environment variables to the provided writer
|
||||
func (cl *ConfigLoader) PrintEnvVars(w io.Writer, showValues bool) error {
|
||||
if cl.envVars == nil || len(cl.envVars) == 0 {
|
||||
if len(cl.envVars) == 0 {
|
||||
return errors.New("no environment variables loaded (did you call Load()?)")
|
||||
}
|
||||
|
||||
// Group variables by their Group field
|
||||
groups := make(map[string][]EnvVar)
|
||||
groupOrder := make([]string, 0)
|
||||
|
||||
|
||||
for _, envVar := range cl.envVars {
|
||||
group := envVar.Group
|
||||
if group == "" {
|
||||
group = "Other"
|
||||
}
|
||||
|
||||
|
||||
if _, exists := groups[group]; !exists {
|
||||
groupOrder = append(groupOrder, group)
|
||||
}
|
||||
@@ -35,7 +35,7 @@ func (cl *ConfigLoader) PrintEnvVars(w io.Writer, showValues bool) error {
|
||||
// Print variables grouped by section
|
||||
for _, group := range groupOrder {
|
||||
vars := groups[group]
|
||||
|
||||
|
||||
// Calculate max name length for alignment within this group
|
||||
maxNameLen := 0
|
||||
for _, envVar := range vars {
|
||||
@@ -51,12 +51,12 @@ func (cl *ConfigLoader) PrintEnvVars(w io.Writer, showValues bool) error {
|
||||
maxNameLen = nameLen
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Print group header
|
||||
fmt.Fprintf(w, "\n%s Configuration\n", group)
|
||||
fmt.Fprintln(w, strings.Repeat("=", len(group)+14))
|
||||
fmt.Fprintln(w)
|
||||
|
||||
|
||||
for _, envVar := range vars {
|
||||
// Build the variable line
|
||||
var varLine string
|
||||
@@ -69,10 +69,10 @@ func (cl *ConfigLoader) PrintEnvVars(w io.Writer, showValues bool) error {
|
||||
} else {
|
||||
varLine = envVar.Name
|
||||
}
|
||||
|
||||
|
||||
// Calculate padding for alignment
|
||||
padding := maxNameLen - len(varLine) + 2
|
||||
|
||||
|
||||
// Print with indentation and alignment
|
||||
fmt.Fprintf(w, " %s%s# %s", varLine, strings.Repeat(" ", padding), envVar.Description)
|
||||
|
||||
@@ -85,7 +85,7 @@ func (cl *ConfigLoader) PrintEnvVars(w io.Writer, showValues bool) error {
|
||||
fmt.Fprintln(w)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fmt.Fprintln(w)
|
||||
|
||||
return nil
|
||||
@@ -109,7 +109,7 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
for _, envVar := range cl.envVars {
|
||||
managedVars[envVar.Name] = true
|
||||
}
|
||||
|
||||
|
||||
// Collect untracked variables
|
||||
for _, line := range existingVars {
|
||||
if line.IsVar && !managedVars[line.Key] {
|
||||
@@ -118,7 +118,7 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
file, err := os.Create(filename)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "failed to create env file")
|
||||
@@ -138,13 +138,13 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
// Group variables by their Group field
|
||||
groups := make(map[string][]EnvVar)
|
||||
groupOrder := make([]string, 0)
|
||||
|
||||
|
||||
for _, envVar := range cl.envVars {
|
||||
group := envVar.Group
|
||||
if group == "" {
|
||||
group = "Other"
|
||||
}
|
||||
|
||||
|
||||
if _, exists := groups[group]; !exists {
|
||||
groupOrder = append(groupOrder, group)
|
||||
}
|
||||
@@ -154,12 +154,12 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
// Write variables grouped by section
|
||||
for _, group := range groupOrder {
|
||||
vars := groups[group]
|
||||
|
||||
|
||||
// Print group header
|
||||
fmt.Fprintln(writer)
|
||||
fmt.Fprintf(writer, "# %s Configuration\n", group)
|
||||
fmt.Fprintln(writer, strings.Repeat("#", len(group)+15))
|
||||
|
||||
|
||||
for _, envVar := range vars {
|
||||
// Write comment with description
|
||||
fmt.Fprintf(writer, "# %s", envVar.Description)
|
||||
@@ -185,7 +185,7 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
} else {
|
||||
fmt.Fprintf(writer, "%s=%s\n", envVar.Name, value)
|
||||
}
|
||||
|
||||
|
||||
fmt.Fprintln(writer)
|
||||
}
|
||||
}
|
||||
@@ -197,7 +197,7 @@ func (cl *ConfigLoader) GenerateEnvFile(filename string, useCurrentValues bool)
|
||||
fmt.Fprintln(writer, "# These variables were in the original file but are not managed by ezconf")
|
||||
fmt.Fprintln(writer, strings.Repeat("#", 72))
|
||||
fmt.Fprintln(writer)
|
||||
|
||||
|
||||
for _, line := range existingUntracked {
|
||||
fmt.Fprintf(writer, "%s=%s\n", line.Key, line.Value)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user