Files
panel/cmd/cli/wire_gen.go
T
耗子 e8f7811aba feat: 重构 CLI 命令并补全缺失功能
website create 未传网站类型导致必然失败,补全类型、代理地址、
数据库、备注等参数,并在进入 biz 层前统一走验证器校验。

新增命令:
- firewall status/on/off/list/port
- cert list/renew
- restore panel
- website cert/list,user create/delete
- backup list,app list,cron list/run/status
- database list-server

调整:
- 密码取值改为参数 > ACEPANEL_PASSWORD > 交互输入(不回显)
- 补 bind-domain/bind-ip/bind-ua 的 on 子命令
- 新增全局 --json,接入全部 list 命令
- port 支持 flag 写法,info 支持 -u 指定用户
- 位置参数命令补 ArgsUsage

修复:
- cutoff clear 清理远程日志时目录与上传路径不一致,导致远程切割
  日志从未被清理,ClearStorageExpired 改为接收目标目录
- restore 缺少 panel 分支,从 FixPanel 抽出 restorePanel 复用

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 19:30:11 +08:00

91 lines
3.8 KiB
Go

// Code generated by Wire. DO NOT EDIT.
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
//go:build !wireinject
// +build !wireinject
package main
import (
"github.com/acepanel/panel/v3/internal/app"
"github.com/acepanel/panel/v3/internal/biz"
"github.com/acepanel/panel/v3/internal/bootstrap"
"github.com/acepanel/panel/v3/internal/command"
"github.com/acepanel/panel/v3/internal/data"
"github.com/acepanel/panel/v3/internal/service"
)
import (
_ "time/tzdata"
)
// Injectors from wire.go:
func initCli() (*app.Cli, func(), error) {
config, err := bootstrap.NewConf()
if err != nil {
return nil, nil, err
}
locale := bootstrap.NewT(config)
db, err := bootstrap.NewDB(config)
if err != nil {
return nil, nil, err
}
logger, cleanup, err := bootstrap.NewLogger(config)
if err != nil {
return nil, nil, err
}
slogLogger := bootstrap.NewSlog(logger)
appRepo := data.NewAppRepo(config, db, locale, slogLogger)
cacheRepo := data.NewCacheRepo(db)
notifyChannelRepo := data.NewNotifyChannelRepo(db)
settingRepo := data.NewSettingRepo(config, db)
notifyUsecase := biz.NewNotifyUsecase(locale, slogLogger, notifyChannelRepo, settingRepo)
taskRunner := bootstrap.NewRunner(notifyUsecase, db, locale, slogLogger)
taskRepo := data.NewTaskRepo(db, locale, slogLogger, taskRunner)
appUsecase := biz.NewAppUsecase(locale, appRepo, cacheRepo, taskRepo)
websiteRepo := data.NewWebsiteRepo(db, locale, settingRepo)
backupRepo := data.NewBackupRepo(config, db, locale, slogLogger, settingRepo, websiteRepo)
backupUsecase := biz.NewBackupUsecase(notifyUsecase, locale, slogLogger, backupRepo)
cacheUsecase := biz.NewCacheUsecase(cacheRepo)
certAccountRepo := data.NewCertAccountRepo(db, locale, slogLogger)
userRepo := data.NewUserRepo(db, locale)
certAccountUsecase := biz.NewCertAccountUsecase(locale, slogLogger, certAccountRepo, userRepo)
certRepo := data.NewCertRepo(db, locale, slogLogger)
certUsecase := biz.NewCertUsecase(locale, slogLogger, certRepo, settingRepo)
cronRepo := data.NewCronRepo(db, locale)
cronUsecase := biz.NewCronUsecase(cronRepo, slogLogger)
databaseServerRepo := data.NewDatabaseServerRepo(db)
databaseServerUsecase := biz.NewDatabaseServerUsecase(locale, slogLogger, databaseServerRepo)
settingUsecase := biz.NewSettingUsecase(locale, slogLogger, settingRepo, taskRepo)
userPasskeyRepo := data.NewUserPasskeyRepo(db)
userPasskeyUsecase := biz.NewUserPasskeyUsecase(userPasskeyRepo)
userUsecase := biz.NewUserUsecase(locale, slogLogger, userRepo)
databaseUserRepo := data.NewDatabaseUserRepo(db)
databaseUserUsecase := biz.NewDatabaseUserUsecase(slogLogger, databaseServerRepo, databaseUserRepo)
databaseRepo := data.NewDatabaseRepo(db)
databaseUsecase := biz.NewDatabaseUsecase(databaseUserUsecase, locale, slogLogger, databaseRepo, databaseServerRepo)
tamperRepo, err := data.NewTamperRepo(db)
if err != nil {
cleanup()
return nil, nil, err
}
tamperUsecase := biz.NewTamperUsecase(notifyUsecase, settingUsecase, locale, slogLogger, tamperRepo)
websiteStatRepo, err := data.NewWebsiteStatRepo()
if err != nil {
cleanup()
return nil, nil, err
}
websiteStatUsecase := biz.NewWebsiteStatUsecase(websiteStatRepo)
websiteUsecase := biz.NewWebsiteUsecase(certAccountUsecase, certUsecase, databaseUsecase, databaseUserUsecase, tamperUsecase, websiteStatUsecase, locale, slogLogger, databaseServerRepo, websiteRepo)
validator := bootstrap.NewValidator(config, db)
cliService := service.NewCliService(appUsecase, backupUsecase, cacheUsecase, certAccountUsecase, certUsecase, cronUsecase, databaseServerUsecase, notifyUsecase, settingUsecase, userPasskeyUsecase, userUsecase, websiteUsecase, config, db, locale, validator)
v := command.Commands(locale, cliService)
cliCommand := bootstrap.NewCli(locale, v)
gormigrate := bootstrap.NewMigrate(db)
cli := app.NewCli(cliCommand, gormigrate)
return cli, func() {
cleanup()
}, nil
}