@ -3,11 +3,11 @@ package cli
import (
"flag"
"fmt"
"os"
"reflect"
"runtime"
"strconv"
"strings"
"syscall"
"time"
)
@ -92,7 +92,7 @@ func (f GenericFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
val . Set ( envVal )
break
}
@ -128,7 +128,7 @@ func (f StringSliceFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
newVal := & StringSlice { }
for _ , s := range strings . Split ( envVal , "," ) {
s = strings . TrimSpace ( s )
@ -176,7 +176,7 @@ func (f IntSliceFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
newVal := & IntSlice { }
for _ , s := range strings . Split ( envVal , "," ) {
s = strings . TrimSpace ( s )
@ -227,7 +227,7 @@ func (f Int64SliceFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
newVal := & Int64Slice { }
for _ , s := range strings . Split ( envVal , "," ) {
s = strings . TrimSpace ( s )
@ -256,7 +256,12 @@ func (f BoolFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := os . Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
if envVal == "" {
val = false
break
}
envValBool , err := strconv . ParseBool ( envVal )
if err == nil {
val = envValBool
@ -281,7 +286,12 @@ func (f BoolTFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := os . Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
if envVal == "" {
val = false
break
}
envValBool , err := strconv . ParseBool ( envVal )
if err == nil {
val = envValBool
@ -305,7 +315,7 @@ func (f StringFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
f . Value = envVal
break
}
@ -326,7 +336,7 @@ func (f IntFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValInt , err := strconv . ParseInt ( envVal , 0 , 64 )
if err == nil {
f . Value = int ( envValInt )
@ -350,7 +360,7 @@ func (f Int64Flag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValInt , err := strconv . ParseInt ( envVal , 0 , 64 )
if err == nil {
f . Value = envValInt
@ -374,7 +384,7 @@ func (f UintFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValInt , err := strconv . ParseUint ( envVal , 0 , 64 )
if err == nil {
f . Value = uint ( envValInt )
@ -398,7 +408,7 @@ func (f Uint64Flag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValInt , err := strconv . ParseUint ( envVal , 0 , 64 )
if err == nil {
f . Value = uint64 ( envValInt )
@ -422,7 +432,7 @@ func (f DurationFlag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValDuration , err := time . ParseDuration ( envVal )
if err == nil {
f . Value = envValDuration
@ -446,7 +456,7 @@ func (f Float64Flag) Apply(set *flag.FlagSet) {
if f . EnvVar != "" {
for _ , envVar := range strings . Split ( f . EnvVar , "," ) {
envVar = strings . TrimSpace ( envVar )
if envVal := o s. Getenv ( envVar ) ; envVal != "" {
if envVal , ok := syscall . Getenv ( envVar ) ; ok {
envValFloat , err := strconv . ParseFloat ( envVal , 10 )
if err == nil {
f . Value = float64 ( envValFloat )