重启项目
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
// 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() {
|
||||
|
||||
|
||||
gLog.print("dir");
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// log 日志
|
||||
import fsys
|
||||
import fsys.log
|
||||
import time
|
||||
|
||||
var getToday = function(){
|
||||
var $now = time.now() //当前时间
|
||||
return "" ++ $now.year ++ $now.month ++ $now.day
|
||||
}
|
||||
|
||||
var todayLogFile = function( name ) {
|
||||
|
||||
var appDataPath = string.getenv("APPDATA");
|
||||
var appPath = appDataPath ++ "/" ++ name;
|
||||
if (! io.exist( appPath )) {
|
||||
fsys.createDir( appPath )
|
||||
}
|
||||
return appPath ++ "/" ++ name ++ "." ++ getToday() ++ ".log"
|
||||
}
|
||||
|
||||
|
||||
class log {
|
||||
ctor( name ){
|
||||
|
||||
path = todayLogFile(name);
|
||||
|
||||
this = ..fsys.log(path) //调用基类构造对象原型
|
||||
this.basePrint = this.print;
|
||||
};
|
||||
|
||||
print = function(...){
|
||||
var t = ..time.now()
|
||||
t.format="%Y%m%d-%H%M%S ";
|
||||
|
||||
var args = {...}
|
||||
..table.insert(args, tostring(t)) // 通常时间非重要信息,以...作视觉区分方便查看
|
||||
|
||||
this.basePrint( ..table.unpack(args) )
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user