mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-07 16:16:37 +08:00
autoresearch iter 10: keep error identity at the last errorlint sites
RunPushTest flattened channel validation failures with %v, telegram's fallback path discarded the original send error, and the config loader's type assertion on viper.ConfigFileNotFoundError would miss a wrapped form and fatally abort over a merely missing file. errorlint now reports zero.
This commit is contained in:
@@ -6,6 +6,7 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"flag"
|
"flag"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
@@ -67,7 +68,8 @@ func init() {
|
|||||||
|
|
||||||
// 读取配置文件(可选:找不到文件时使用空默认值 + 环境变量)
|
// 读取配置文件(可选:找不到文件时使用空默认值 + 环境变量)
|
||||||
if err := viper.ReadInConfig(); err != nil {
|
if err := viper.ReadInConfig(); err != nil {
|
||||||
if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
|
var notFound viper.ConfigFileNotFoundError
|
||||||
|
if !errors.As(err, ¬Found) {
|
||||||
// 文件存在但读取/解析失败
|
// 文件存在但读取/解析失败
|
||||||
if _, statErr := os.Stat(configPath); statErr == nil { //nolint:gosec // configPath is loaded from CONFIG_PATH environment variable
|
if _, statErr := os.Stat(configPath); statErr == nil { //nolint:gosec // configPath is loaded from CONFIG_PATH environment variable
|
||||||
log.Fatalf("[Config] read config failed: %v\n", err)
|
log.Fatalf("[Config] read config failed: %v\n", err)
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ func (p *TelegramPusher) Send(ctx context.Context, cfg Config, target string, bo
|
|||||||
}
|
}
|
||||||
fallbackErr := p.sendMessage(ctx, baseURL, cfg.Secret, chatID, plainText, "")
|
fallbackErr := p.sendMessage(ctx, baseURL, cfg.Secret, chatID, plainText, "")
|
||||||
if fallbackErr != nil {
|
if fallbackErr != nil {
|
||||||
return "", fmt.Errorf("telegram: send message failed (fallback also failed): %w (original HTML error: %v)", fallbackErr, err)
|
return "", fmt.Errorf("telegram: send message failed (fallback also failed): %w (original HTML error: %w)", fallbackErr, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ func RunPushTest(ctx context.Context, cfg pkgpush.Config, target string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := pusher.ValidateConfig(cfg); err != nil {
|
if err := pusher.ValidateConfig(cfg); err != nil {
|
||||||
return fmt.Errorf("%s: %v", errs.ErrValidationFailed, err)
|
return fmt.Errorf("%s: %w", errs.ErrValidationFailed, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplySMTPFallbackToPushConfig(ctx, &cfg)
|
ApplySMTPFallbackToPushConfig(ctx, &cfg)
|
||||||
|
|||||||
Reference in New Issue
Block a user