2024-08-20 06:19:23 +00:00
|
|
|
// init 初始化
|
|
|
|
import log
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 临时日志
|
|
|
|
var gLog = log( "awin" );
|
|
|
|
var gDebug = false;
|
|
|
|
|
|
|
|
namespace init{
|
|
|
|
import fsys
|
|
|
|
import string
|
|
|
|
import web.json
|
|
|
|
|
|
|
|
// 日志对象
|
|
|
|
getDebug = function(){
|
|
|
|
return gDebug;
|
|
|
|
}
|
|
|
|
|
|
|
|
// 日志对象
|
|
|
|
getLog = function(){
|
|
|
|
return gLog;
|
|
|
|
}
|
|
|
|
|
|
|
|
// 配置载入函数
|
|
|
|
loadConfigs = function() {
|
2024-08-20 07:40:27 +00:00
|
|
|
import io;
|
|
|
|
import util;
|
2024-08-20 06:19:23 +00:00
|
|
|
|
2024-08-20 07:40:27 +00:00
|
|
|
gLog.print("loadConfigs");
|
2024-08-20 06:19:23 +00:00
|
|
|
var configs = {};
|
|
|
|
var currentPath = fsys.getCurDir();
|
|
|
|
gLog.print("currentPath", currentPath);
|
|
|
|
var appDataPath = string.getenv("APPDATA");
|
|
|
|
gLog.print("appDataPath", appDataPath);
|
|
|
|
|
|
|
|
// 读取当前路径下的 config.json
|
|
|
|
var currentConfigPath = currentPath ++ "/config.json";
|
|
|
|
if (io.exist(currentConfigPath)) {
|
|
|
|
var currentConfigContent = string.load(currentConfigPath);
|
|
|
|
configs = web.json.parse(currentConfigContent);
|
|
|
|
}
|
|
|
|
|
|
|
|
// 从当前路径下的 config.json 中读取 app 值
|
|
|
|
var appValue = configs.app;
|
|
|
|
if (!appValue) {
|
|
|
|
error("'app' value not found in the config file.");
|
|
|
|
}
|
|
|
|
gLog.print("app", appValue);
|
|
|
|
|
|
|
|
// 构建 %APPDATA%/%app% 路径
|
|
|
|
var appDir = appDataPath ++ "/" ++ appValue;
|
|
|
|
if (! io.exist( appDir )) {
|
|
|
|
fsys.createDir( appDir )
|
|
|
|
}
|
|
|
|
var appDataConfigPath = appDataPath ++ "/" ++ appValue ++ "/config.json";
|
|
|
|
|
|
|
|
// 读取 %APPDATA%/%app% 路径下的 config.json
|
|
|
|
if (io.exist(appDataConfigPath)) {
|
|
|
|
var appDataConfigContent = string.load(appDataConfigPath);
|
|
|
|
var appDataConfig = web.json.parse(appDataConfigContent);
|
|
|
|
|
|
|
|
// 合并配置,后读取的覆盖先读取的
|
|
|
|
object.merge(configs, appDataConfig, true);
|
|
|
|
}
|
2024-08-20 07:40:27 +00:00
|
|
|
|
|
|
|
gLog.print("configs", util.table.stringify(configs, true));
|
2024-08-20 06:19:23 +00:00
|
|
|
return configs;
|
|
|
|
};
|
|
|
|
|
|
|
|
checkConfig = function (config){
|
|
|
|
if( ! config.window ){
|
|
|
|
config.window = {}
|
|
|
|
}
|
|
|
|
if( ! config.window.width ) {
|
|
|
|
config.window.width = 500
|
|
|
|
}
|
|
|
|
if( ! config.window.height ) {
|
|
|
|
config.window.height = 500
|
|
|
|
}
|
|
|
|
return config;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
载入配置,配置文件读取顺序,后读的可以覆盖先读的值。
|
|
|
|
1. 读取当前路径下的 config.json
|
|
|
|
2. 读取 %APPDATA%/%app% 路径下的 config.json。其中 %APPDATA% 为操作系统提供的当前用户软件目录。
|
|
|
|
%app% 为当前路径下的 config.json 中配置的 app
|
|
|
|
|
|
|
|
*/
|
|
|
|
init = function(){
|
|
|
|
gLog.print("init")
|
|
|
|
gConfig = {}
|
|
|
|
// 使用示例
|
|
|
|
try {
|
|
|
|
gLog.print("loadConfigs")
|
|
|
|
io.print("")
|
|
|
|
gConfig = loadConfigs()
|
|
|
|
io.print("2")
|
|
|
|
gConfig = checkConfig( gConfig )
|
|
|
|
gLog.print(configs);
|
|
|
|
} catch (e) {
|
|
|
|
io.print("错误会中断try语句块" ++ e)
|
|
|
|
gLog.print(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|