mirror of
				https://github.com/beego/bee.git
				synced 2025-10-31 17:33:26 +00:00 
			
		
		
		
	Fixes configuration loading since last changes
This commit is contained in:
		| @@ -11,7 +11,6 @@ | |||||||
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||||||
| // License for the specific language governing permissions and limitations | // License for the specific language governing permissions and limitations | ||||||
| // under the License. | // under the License. | ||||||
|  |  | ||||||
| package bale | package bale | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| @@ -43,8 +42,11 @@ var CmdBale = &commands.Command{ | |||||||
|   It will auto-generate an unpack function to the main package then run it during the runtime. |   It will auto-generate an unpack function to the main package then run it during the runtime. | ||||||
|   This is mainly used for zealots who are requiring 100% Go code. |   This is mainly used for zealots who are requiring 100% Go code. | ||||||
| `, | `, | ||||||
| 	PreRun: func(cmd *commands.Command, args []string) { version.ShowShortVersionBanner() }, | 	PreRun: func(cmd *commands.Command, args []string) { | ||||||
| 	Run:    runBale, | 		version.ShowShortVersionBanner() | ||||||
|  | 		config.LoadConfig() | ||||||
|  | 	}, | ||||||
|  | 	Run: runBale, | ||||||
| } | } | ||||||
|  |  | ||||||
| func init() { | func init() { | ||||||
|   | |||||||
| @@ -1,3 +1,16 @@ | |||||||
|  | // Copyright 2013 bee authors | ||||||
|  | // | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License"): you may | ||||||
|  | // not use this file except in compliance with the License. You may obtain | ||||||
|  | // a copy of the License at | ||||||
|  | // | ||||||
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||||||
|  | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||||||
|  | // License for the specific language governing permissions and limitations | ||||||
|  | // under the License. | ||||||
| package generate | package generate | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| @@ -104,6 +117,8 @@ func scaffold(cmd *commands.Command, args []string, currpath string) { | |||||||
| 		beeLogger.Log.Fatal("Wrong number of arguments. Run: bee help generate") | 		beeLogger.Log.Fatal("Wrong number of arguments. Run: bee help generate") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	config.LoadConfig() | ||||||
|  |  | ||||||
| 	cmd.Flag.Parse(args[2:]) | 	cmd.Flag.Parse(args[2:]) | ||||||
| 	if generate.SQLDriver == "" { | 	if generate.SQLDriver == "" { | ||||||
| 		generate.SQLDriver = utils.DocValue(config.Conf.Database.Driver) | 		generate.SQLDriver = utils.DocValue(config.Conf.Database.Driver) | ||||||
| @@ -126,6 +141,8 @@ func scaffold(cmd *commands.Command, args []string, currpath string) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func appCode(cmd *commands.Command, args []string, currpath string) { | func appCode(cmd *commands.Command, args []string, currpath string) { | ||||||
|  | 	config.LoadConfig() | ||||||
|  |  | ||||||
| 	cmd.Flag.Parse(args[1:]) | 	cmd.Flag.Parse(args[1:]) | ||||||
| 	if generate.SQLDriver == "" { | 	if generate.SQLDriver == "" { | ||||||
| 		generate.SQLDriver = utils.DocValue(config.Conf.Database.Driver) | 		generate.SQLDriver = utils.DocValue(config.Conf.Database.Driver) | ||||||
|   | |||||||
| @@ -1,3 +1,16 @@ | |||||||
|  | // Copyright 2013 bee authors | ||||||
|  | // | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License"): you may | ||||||
|  | // not use this file except in compliance with the License. You may obtain | ||||||
|  | // a copy of the License at | ||||||
|  | // | ||||||
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||||||
|  | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||||||
|  | // License for the specific language governing permissions and limitations | ||||||
|  | // under the License. | ||||||
| package migrate | package migrate | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| @@ -39,8 +52,11 @@ var CmdMigrate = &commands.Command{ | |||||||
|  |  | ||||||
|     $ bee migrate refresh [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] |     $ bee migrate refresh [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] | ||||||
| `, | `, | ||||||
| 	PreRun: func(cmd *commands.Command, args []string) { version.ShowShortVersionBanner() }, | 	PreRun: func(cmd *commands.Command, args []string) { | ||||||
| 	Run:    RunMigration, | 		version.ShowShortVersionBanner() | ||||||
|  | 		config.LoadConfig() | ||||||
|  | 	}, | ||||||
|  | 	Run: RunMigration, | ||||||
| } | } | ||||||
|  |  | ||||||
| var mDriver utils.DocValue | var mDriver utils.DocValue | ||||||
|   | |||||||
| @@ -11,7 +11,6 @@ | |||||||
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||||||
| // License for the specific language governing permissions and limitations | // License for the specific language governing permissions and limitations | ||||||
| // under the License. | // under the License. | ||||||
|  |  | ||||||
| package run | package run | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| @@ -35,8 +34,11 @@ var CmdRun = &commands.Command{ | |||||||
| Run command will supervise the filesystem of the application for any changes, and recompile/restart it. | Run command will supervise the filesystem of the application for any changes, and recompile/restart it. | ||||||
|  |  | ||||||
| `, | `, | ||||||
| 	PreRun: func(cmd *commands.Command, args []string) { version.ShowShortVersionBanner() }, | 	PreRun: func(cmd *commands.Command, args []string) { | ||||||
| 	Run:    RunApp, | 		version.ShowShortVersionBanner() | ||||||
|  | 		config.LoadConfig() | ||||||
|  | 	}, | ||||||
|  | 	Run: RunApp, | ||||||
| } | } | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
|   | |||||||
| @@ -11,11 +11,11 @@ | |||||||
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||||||
| // License for the specific language governing permissions and limitations | // License for the specific language governing permissions and limitations | ||||||
| // under the License. | // under the License. | ||||||
|  |  | ||||||
| package config | package config | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  | 	"io" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| @@ -34,7 +34,6 @@ var defaultConf = `{ | |||||||
| 		"install": false | 		"install": false | ||||||
| 	}, | 	}, | ||||||
| 	"go_install": true, | 	"go_install": true, | ||||||
| 	"watch_ext": [], |  | ||||||
| 	"dir_structure": { | 	"dir_structure": { | ||||||
| 		"watch_all": false, | 		"watch_all": false, | ||||||
| 		"controllers": "", | 		"controllers": "", | ||||||
| @@ -59,8 +58,7 @@ var Conf struct { | |||||||
| 		Install bool | 		Install bool | ||||||
| 	} | 	} | ||||||
| 	// Indicates whether execute "go install" before "go build". | 	// Indicates whether execute "go install" before "go build". | ||||||
| 	GoInstall bool     `json:"go_install" yaml:"go_install"` | 	GoInstall bool `json:"go_install" yaml:"go_install"` | ||||||
| 	WatchExt  []string `json:"watch_ext" yaml:"watch_ext"` |  | ||||||
| 	DirStruct struct { | 	DirStruct struct { | ||||||
| 		WatchAll    bool `json:"watch_all" yaml:"watch_all"` | 		WatchAll    bool `json:"watch_all" yaml:"watch_all"` | ||||||
| 		Controllers string | 		Controllers string | ||||||
| @@ -82,37 +80,54 @@ var Conf struct { | |||||||
| 	EnableNotification bool `json:"enable_notification" yaml:"enable_notification"` | 	EnableNotification bool `json:"enable_notification" yaml:"enable_notification"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func init() { | // LoadConfig loads the bee tool configuration. | ||||||
| 	loadConfig() | // It looks for Beefile or bee.json in the current path, | ||||||
| } | // and falls back to default configuration in case not found. | ||||||
|  | func LoadConfig() { | ||||||
| // loadConfig loads customized configuration. | 	err := filepath.Walk(".", func(path string, fileInfo os.FileInfo, err error) error { | ||||||
| func loadConfig() { |  | ||||||
| 	beeLogger.Log.Info("Loading default configuration...") |  | ||||||
| 	err := json.Unmarshal([]byte(defaultConf), &Conf) |  | ||||||
| 	if err != nil { |  | ||||||
| 		beeLogger.Log.Errorf(err.Error()) |  | ||||||
| 	} |  | ||||||
| 	err = filepath.Walk(".", func(path string, fileInfo os.FileInfo, err error) error { |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		if fileInfo.IsDir() { | 		if fileInfo.IsDir() { | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		switch fileInfo.Name() { | 		switch fileInfo.Name() { | ||||||
| 		case "bee.json": | 		case "bee.json": | ||||||
| 			beeLogger.Log.Info("Loading configuration from 'bee.json'...") | 			{ | ||||||
| 			return parseJSON(path, &Conf) | 				beeLogger.Log.Info("Loading configuration from 'bee.json'...") | ||||||
|  | 				err = parseJSON(path, &Conf) | ||||||
|  | 				if err != nil { | ||||||
|  | 					beeLogger.Log.Errorf("Failed to parse JSON file: %s", err) | ||||||
|  | 					return err | ||||||
|  | 				} | ||||||
|  | 				return io.EOF | ||||||
|  | 			} | ||||||
| 		case "Beefile": | 		case "Beefile": | ||||||
| 			beeLogger.Log.Info("Loading configuration from 'Beefile'...") | 			{ | ||||||
| 			return parseYAML(path, &Conf) | 				beeLogger.Log.Info("Loading configuration from 'Beefile'...") | ||||||
|  | 				err = parseYAML(path, &Conf) | ||||||
|  | 				if err != nil { | ||||||
|  | 					beeLogger.Log.Errorf("Failed to parse YAML file: %s", err) | ||||||
|  | 					return err | ||||||
|  | 				} | ||||||
|  | 				return io.EOF | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		return nil | 		return nil | ||||||
| 	}) | 	}) | ||||||
| 	if err != nil { |  | ||||||
| 		beeLogger.Log.Errorf("Failed to parse config file: %s", err) | 	// In case no configuration file found or an error different than io.EOF, | ||||||
|  | 	// fallback to default configuration | ||||||
|  | 	if err != io.EOF { | ||||||
|  | 		beeLogger.Log.Info("Loading default configuration...") | ||||||
|  | 		err = json.Unmarshal([]byte(defaultConf), &Conf) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Check format version | 	// Check format version | ||||||
| 	if Conf.Version != confVer { | 	if Conf.Version != confVer { | ||||||
| 		beeLogger.Log.Warn("Your configuration file is outdated. Please do consider updating it.") | 		beeLogger.Log.Warn("Your configuration file is outdated. Please do consider updating it.") | ||||||
| @@ -123,12 +138,10 @@ func loadConfig() { | |||||||
| 	if len(Conf.DirStruct.Controllers) == 0 { | 	if len(Conf.DirStruct.Controllers) == 0 { | ||||||
| 		Conf.DirStruct.Controllers = "controllers" | 		Conf.DirStruct.Controllers = "controllers" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if len(Conf.DirStruct.Models) == 0 { | 	if len(Conf.DirStruct.Models) == 0 { | ||||||
| 		Conf.DirStruct.Models = "models" | 		Conf.DirStruct.Models = "models" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Append watch exts |  | ||||||
| 	//watchExts = append(watchExts, Conf.WatchExt...) |  | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Faissal Elamraoui
					Faissal Elamraoui