MCPcopy
hub / github.com/filebrowser/filebrowser / initViper

Function initViper

cmd/utils.go:85–133  ·  view source on GitHub ↗
(cmd *cobra.Command)

Source from the content-addressed store, hash-verified

83}
84
85func initViper(cmd *cobra.Command) (*viper.Viper, error) {
86 v := viper.New()
87
88 // Get config file from flag
89 cfgFile, err := cmd.Flags().GetString("config")
90 if err != nil {
91 return nil, err
92 }
93
94 // Configuration file
95 if cfgFile == "" {
96 home, err := homedir.Dir()
97 if err != nil {
98 return nil, err
99 }
100 v.AddConfigPath(".")
101 v.AddConfigPath(home)
102 v.AddConfigPath("/etc/filebrowser/")
103 v.SetConfigName(".filebrowser")
104 } else {
105 v.SetConfigFile(cfgFile)
106 }
107
108 // Environment variables
109 v.SetEnvPrefix("FB")
110 v.AutomaticEnv()
111 v.SetEnvKeyReplacer(strings.NewReplacer(generateEnvKeyReplacements(cmd)...))
112
113 // Bind the flags
114 err = v.BindPFlags(cmd.Flags())
115 if err != nil {
116 return nil, err
117 }
118
119 // Read in configuration
120 if err := v.ReadInConfig(); err != nil {
121
122 if errors.As(err, &viper.ConfigParseError{}) {
123 return nil, err
124 }
125
126 log.Println("No config file used")
127 } else {
128 log.Printf("Using config file: %s", v.ConfigFileUsed())
129 }
130
131 // Return Viper
132 return v, nil
133}
134
135type store struct {
136 *storage.Storage

Callers 1

withViperAndStoreFunction · 0.85

Calls 2

GetStringMethod · 0.80

Tested by

no test coverage detected