Files
daohangye/service/initialize/A_ENTER.go
T
Sun 4c1d67b513 更新 1.3.0-beta24-01-09
Squashed commit of the following:

commit 53d1f382c5
Author: Sun <95302870@qq.com>
Date:   Tue Jan 9 11:54:33 2024 +0800

    系统状态标题加上阴影,beta版本最终优化

commit fc56328765
Author: Sun <95302870@qq.com>
Date:   Mon Jan 8 22:37:24 2024 +0800

    磁盘监控增加表单验证

commit 3905717d42
Author: Sun <95302870@qq.com>
Date:   Mon Jan 8 22:36:10 2024 +0800

    删除无用文件

commit 89b6b63310
Author: Sun <95302870@qq.com>
Date:   Mon Jan 8 21:10:10 2024 +0800

    修改翻译文件为json格式(为了方便引用插件)优化过期登录弹窗多个的问题

commit 2efb31571e
Author: Sun <95302870@qq.com>
Date:   Mon Jan 8 13:56:57 2024 +0800

    增加vscode工作区文件

commit bc79b661db
Author: Sun <95302870@qq.com>
Date:   Mon Jan 8 13:56:45 2024 +0800

    暂时解决依赖循环的问题

commit a24520f808
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 20:07:52 2024 +0800

    修改设置里面壁纸提示词错误的问题修改首页默认标题

commit 394c6ce20c
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 14:53:53 2024 +0800

    适配多语言
    Squashed commit of the following:

    commit 632f86c0228c68391c01865c7576f3aa0408c102
    Author: Sun <95302870@qq.com>
    Date:   Sun Jan 7 14:47:55 2024 +0800

        退出的时候清除appstore

    commit b9d805e49a3c6b2ad38bc8d527cb12cc8709012e
    Author: Sun <95302870@qq.com>
    Date:   Sun Jan 7 13:55:20 2024 +0800

        系统状态监控适配国际化

    commit daece99723ec96d210241d2ca4e5a85dc5ae69bd
    Author: Sun <95302870@qq.com>
    Date:   Sun Jan 7 13:09:46 2024 +0800

        适配添加项目页面的国际化配置还有时钟的星期*

    commit 8ea2b2fe951f6266415c96a197cb8d00faef4058
    Author: Sun <95302870@qq.com>
    Date:   Sun Jan 7 12:01:55 2024 +0800

        完成适配所有apps国际化

    commit 21ef54e0d4afb10f560c8cb7aff666374afe0f87
    Author: Sun <95302870@qq.com>
    Date:   Sat Jan 6 21:36:07 2024 +0800

        增加读取默认浏览器语言

    commit 6f710bbebe63ab2800193f27c71e5c0034f11978
    Author: Sun <95302870@qq.com>
    Date:   Sat Jan 6 21:09:58 2024 +0800

        登录页面增加语言选择选项

    commit cb7c4a89a160ed3ef91ad566ec98e75325e7601f
    Author: Sun <95302870@qq.com>
    Date:   Sat Jan 6 20:37:16 2024 +0800

        首次尝试增加英文语言,并在我的信息设置

    commit fb996e17cd11611d30c0e12feee00ddf7b225e32
    Author: Sun <95302870@qq.com>
    Date:   Sat Jan 6 18:22:40 2024 +0800

        完成基础设置页面的语言国际化适配

commit ffc378a38f
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 17:35:13 2024 +0800

    增加完善基本配置中的系统状态开关

commit c91eaf3e94
Merge: 7ebe358 a60f72c
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 12:57:05 2024 +0800

    Merge branch 'feature/monitor2' into dev

commit 7ebe35856e
Merge: d3e3cf5 779712a
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 12:56:15 2024 +0800

    Merge branch 'feature/footer' into dev

commit a60f72c277
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 12:55:04 2024 +0800

    优化了首页

commit 899c945fff
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 12:54:19 2024 +0800

    完成系统监控

commit cdf16277ff
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 12:41:38 2024 +0800

    增加删除功能

commit 128af005eb
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 11:56:32 2024 +0800

    完成排序保存功能

commit 3f4b3c67f2
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 11:46:59 2024 +0800

    初步完成了增改查包括磁盘状态

commit a85d90985d
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 22:19:47 2024 +0800

    增加磁盘信息卡片的适配

commit c955afd861
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 21:36:38 2024 +0800

    增加获取磁盘挂载点接口

commit 21e8e8f1b8
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 21:14:57 2024 +0800

    基础完成了增改查cpu和内存状态

commit bdbcd50aa1
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 14:25:09 2024 +0800

    优化公共入口组件

commit 9735e67a7d
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 14:01:46 2024 +0800

    适配三个组件

commit 3a82949afc
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 13:58:58 2024 +0800

    优化组件

commit 0d0421c8eb
Author: Sun <95302870@qq.com>
Date:   Fri Jan 5 13:27:29 2024 +0800

    初步完成了编辑器

commit 1474f796fc
Author: Sun <95302870@qq.com>
Date:   Thu Jan 4 16:22:33 2024 +0800

    完成大图标小图标切换

commit baf64a9272
Author: Sun <95302870@qq.com>
Date:   Thu Jan 4 12:08:39 2024 +0800

    增加获取各项监控的单独api

commit d3e3cf5d58
Author: Sun <95302870@qq.com>
Date:   Wed Jan 3 20:46:58 2024 +0800

    尝试将所有监控放在顶部

commit 8dfec7e4b7
Author: Sun <95302870@qq.com>
Date:   Wed Jan 3 20:02:03 2024 +0800

    完整横条显示并对容量尺寸单位优化自动识别

commit fe967a9314
Author: Sun <95302870@qq.com>
Date:   Wed Jan 3 18:55:39 2024 +0800

    适配显示了cpu、硬盘、内存信息

commit 11ea134be3
Author: Sun <95302870@qq.com>
Date:   Tue Jan 2 23:14:04 2024 +0800

    完成系统监控的基础api接口

commit c447884d77
Author: Sun <95302870@qq.com>
Date:   Tue Jan 2 22:11:34 2024 +0800

    完成基本的系统监控类库

commit 779712a5da
Author: Sun <95302870@qq.com>
Date:   Tue Jan 2 17:14:16 2024 +0800

    增加自定义footer
2024-01-09 14:03:03 +08:00

197 lines
5.1 KiB
Go

package initialize
import (
"flag"
"fmt"
"os"
"sun-panel/global"
"sun-panel/initialize/cUserToken"
"sun-panel/initialize/config"
"sun-panel/initialize/database"
"sun-panel/initialize/lang"
"sun-panel/initialize/other"
"sun-panel/initialize/redis"
"sun-panel/initialize/runlog"
"sun-panel/initialize/systemSettingCache"
"sun-panel/initialize/userToken"
"sun-panel/lib/cmn"
"sun-panel/models"
"sun-panel/structs"
"time"
"log"
"github.com/gin-gonic/gin"
)
var DB_DRIVER = database.SQLITE
// var RUNCODE = "debug"
// var ISDOCER = "" // 是否为docker模式
func InitApp() error {
Logo()
gin.SetMode(global.RUNCODE) // GIN 运行模式
// 日志
if logger, err := runlog.InitRunlog(global.RUNCODE, "running.log"); err != nil {
log.Panicln("日志初始化错误", err)
panic(err)
} else {
global.Logger = logger
}
// 命令行运行
CommandRun()
// 配置初始化
{
if config, err := config.ConfigInit(); err != nil {
global.Logger.Errorln("配置初始化错误", err)
return err
} else {
global.Config = config
}
}
// 多语言初始化
lang.LangInit("zh-cn") // en-us
DatabaseConnect()
// Redis 连接
{
// 判断是否有使用redis的驱动,没有将不连接
cacheDrive := global.Config.GetValueString("base", "cache_drive")
queueDrive := global.Config.GetValueString("base", "queue_drive")
if cacheDrive == "redis" || queueDrive == "redis" {
redisConfig := structs.IniConfigRedis{}
global.Config.GetSection("redis", &redisConfig)
rdb, err := redis.InitRedis(redis.Options{
Addr: redisConfig.Address,
Password: redisConfig.Password,
DB: redisConfig.Db,
})
if err != nil {
log.Panicln("Redis初始化错误", err)
panic(err)
// return err
}
global.RedisDb = rdb
}
}
// 初始化用户token
global.UserToken = userToken.InitUserToken()
global.CUserToken = cUserToken.InitCUserToken()
// 其他的初始化
global.VerifyCodeCachePool = other.InitVerifyCodeCachePool()
global.SystemSetting = systemSettingCache.InItSystemSettingCache()
global.SystemMonitor = global.NewCache[interface{}](5*time.Hour, -1, "systemMonitorCache")
return nil
}
func DatabaseConnect() {
// 数据库连接 - 开始
var dbClientInfo database.DbClient
databaseDrive := global.Config.GetValueStringOrDefault("base", "database_drive")
if databaseDrive == database.MYSQL {
dbClientInfo = &database.MySQLConfig{
Username: global.Config.GetValueStringOrDefault("mysql", "username"),
Password: global.Config.GetValueStringOrDefault("mysql", "password"),
Host: global.Config.GetValueStringOrDefault("mysql", "host"),
Port: global.Config.GetValueStringOrDefault("mysql", "port"),
Database: global.Config.GetValueStringOrDefault("mysql", "db_name"),
WaitTimeout: global.Config.GetValueInt("mysql", "wait_timeout"),
}
} else {
dbClientInfo = &database.SQLiteConfig{
Filename: global.Config.GetValueStringOrDefault("sqlite", "file_path"),
}
}
if db, err := database.DbInit(dbClientInfo); err != nil {
log.Panicln("数据库初始化错误", err)
panic(err)
} else {
global.Db = db
models.Db = global.Db
}
database.CreateDatabase(databaseDrive, global.Db)
database.NotFoundAndCreateUser(global.Db)
}
// 命令行运行
func CommandRun() {
var (
cfg bool
pwd bool
)
flag.BoolVar(&cfg, "config", false, "生成配置文件")
flag.BoolVar(&pwd, "password-reset", false, "重置第一个用户的密码")
flag.Parse()
if cfg {
// 生成配置文件
fmt.Println("正在生成配置文件")
cmn.AssetsTakeFileToPath("conf.example.ini", "conf/conf.example.ini")
cmn.AssetsTakeFileToPath("conf.example.ini", "conf/conf.ini")
fmt.Println("配置文件已经创建 conf/conf.ini ", "请按照自己的需求修改")
os.Exit(0) // 务必退出
} else if pwd {
// 重置密码
// 配置初始化
config, _ := config.ConfigInit()
global.Config = config
DatabaseConnect()
userInfo := models.User{}
if err := global.Db.Where("role=?", 1).Order("id").First(&userInfo).Error; err != nil {
fmt.Println("ERROR", err.Error())
os.Exit(0) // 务必退出
}
newPassword := "12345678"
updateInfo := models.User{
Password: cmn.PasswordEncryption(newPassword),
Token: "",
}
// 重置第一个管理员的密码
if err := global.Db.Select("Password", "Token").Where("id=?", userInfo.ID).Updates(&updateInfo).Error; err != nil {
fmt.Println("ERROR", err.Error())
os.Exit(0) // 务必退出
}
fmt.Println("密码已经重置成功,以下是账号信息")
fmt.Println("用户名 ", userInfo.Username)
fmt.Println("密码 ", newPassword)
os.Exit(0) // 务必退出
} else {
return
}
os.Exit(0) // 务必退出
}
func Logo() {
fmt.Println(" ____ ___ __")
fmt.Println(" / __/_ _____ / _ \\___ ____ ___ / /")
fmt.Println(" _\\ \\/ // / _ \\ / ___/ _ `/ _ \\/ -_) / ")
fmt.Println(" /___/\\_,_/_//_/ /_/ \\_,_/_//_/\\__/_/ ")
fmt.Println("")
versionInfo := cmn.GetSysVersionInfo()
fmt.Println("Version:", versionInfo.Version)
fmt.Println("Welcome to the Sun-Panel.")
fmt.Println("Project address:", "https://github.com/hslr-s/sun-panel")
}